La consultazione del forum è libera per tutti.
Per poter porre un quesito è invece necessario essere un utente registrato (clicca qui se non lo sei).
Tutti gli utenti che richiedono un supporto, come da REGOLAMENTO, sono caldamente invitati ad allegare un file di esempio con l'indicazione di quello che si desidera ottenere.
Buongiorno a tutti e grazie in anticipo,
ho una USERFORM chiamata "Visita_clienti" con un commandbutton "Cmb_conferma" che mi deve caricare i dati presenti nelle texbox e combobox della USERFORM su un foglio excel, modificando quanto scritto già sul foglio.
Sulla userform sono presenti anche 4 combobox 2 per il mese e 2 per il giorno (in pratica DA / A). In base alla data di inizio e quella di fine devo caricare i dati modificandoli, vi faccio un esempio:
nelle combo mesi e giorni inserisco: da: giugno(Cbo_Mese) 29 (Cbo_giorno_da)
a: luglio (Cbo_Mese2) 3 (Cbo_giorno_a) dovrei caricare per i 5 giorni sopra
i dati sotto DATI DA CARICARE e MODIFICARE
Cbo_Clienti (colonna A) (pinco nome già presente modificandolo in pinco pallino)
Txtcodice_cliente (colonna B) (123456 codice già presente modificandolo in 654321)
Txtpromoter (colonna C) (gianni nome già presente modificandolo in gianni pinotto)
Txtarea_manager (colonna D) (tizio nome già presente modificandolo in tizio caio )
Txtagente (colonna E) (caio nome già presente modificandolo in pinco caio sempronio)
Cbo_Anno (colonna F) (resta uguale)
colonna G i mesi di Giugno e luglio (restano uguali)
colonna H i 2 giorni del mese giugno e i 3 giorni del mense di Luglio (restano uguali)
Ma non mi modifica nulla
Mi da errore nelle righe 2 alla 11 "controlla i valori delle celle per l'anno, mese e giorno)
Secondo voi cosa da cosa può dipendere
Option Explicit
Private Sub Cmb_conferma_Click()
Dim ur As Integer
Dim avviso As String
Dim startDate As Date
Dim endDate As Date
Dim currentDate As Date
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
startDate = DateSerial(CInt(Cbo_Anno.Value), Cbo_Mese.ListIndex + 1, CInt(Cbo_giorno_da.Value))
endDate = DateSerial(CInt(Cbo_Anno.Value), Cbo_Mese2.ListIndex + 1, CInt(Cbo_giorno_a.Value))
Set ws = ThisWorkbook.Sheets("Calendario_visita")
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
Foglio8.Activate
avviso = MsgBox("Sei sicuro di voler MODIFICARE la visita?", vbYesNo + vbQuestion, "Avviso")
If avviso = vbNo Then
Call Cmb_cancella_Click
Exit Sub
End If
If Cbo_Anno = "" Then
MsgBox "Attenzione l'anno", vbExclamation, "AVVISO"
Cbo_Anno.SetFocus
Exit Sub
ElseIf Cbo_Mese = "" Then
MsgBox "Attenzione inserire il mese", vbExclamation, "AVVISO"
Cbo_Mese.SetFocus
Exit Sub
ElseIf Cbo_Mese2 = "" Then
MsgBox "Attenzione inserire il mese", vbExclamation, "AVVISO"
Cbo_Mese.SetFocus
Exit Sub
ElseIf Cbo_giorno_da = "" Then
MsgBox "Attenzione inserire il giorno", vbExclamation, "AVVISO"
Cbo_giorno_da.SetFocus
Exit Sub
ElseIf Cbo_giorno_a = "" Then
MsgBox "Attenzione inserire il giorno", vbExclamation, "AVVISO"
Cbo_giorno_a.SetFocus
Exit Sub
ElseIf Txtpromoter = "" Then
MsgBox "Attenzione inserire il promoter", vbExclamation, "AVVISO"
Txtpromoter.SetFocus
Exit Sub
ElseIf Txtarea_manager = "" Then
MsgBox "Attenzione inserire l'area manager", vbExclamation, "AVVISO"
Txtarea_manager.SetFocus
Exit Sub
ElseIf Txtagente = "" Then
MsgBox "Attenzione inserire l'agente", vbExclamation, "AVVISO"
Txtagente.SetFocus
Exit Sub
ElseIf Cbo_Clienti = "" Then
MsgBox "Attenzione inserire il cliente", vbExclamation, "AVVISO"
Cbo_Clienti.SetFocus
Exit Sub
Else
For i = 2 To lastRow
If Not IsNumeric(ws.Cells(i, 6).Text) And Not IsNumeric(ws.Cells(i, 7).Text) And Not IsNumeric(ws.Cells(i, 8).Text) Then
currentDate = DateSerial(ws.Cells(i, 6).Value, ws.Cells(i, 7).Value, ws.Cells(i, 8).Value)
If currentDate >= startDate And currentDate <= endDate Then
ws.Cells(i, 1).Value = Cbo_Clienti
ws.Cells(i, 2).Value = Txtcodice_cliente
ws.Cells(i, 3).Value = Txtpromoter
ws.Cells(i, 4).Value = Txtarea_manager
ws.Cells(i, 5).Value = Txtagente
ws.Cells(i, 8).Value = Txtnota
End If
Else
MsgBox "Errore nei dati della riga " & i & ". Controlla i valori delle celle per l'anno, mese e giorno.", vbExclamation
End If
Next i
End If
With Foglio8.ListObjects("Calendario_visita_clienti").AutoFilter
If .FilterMode Then
.ShowAllData
End If
End With
With Foglio2.ListObjects("Clienti_Ita").AutoFilter
If .FilterMode Then
.ShowAllData
End If
End With
Call Cmb_cancella_Click
ActiveWorkbook.Save
End Sub
ciao
onestamente io non riesco neanche ad aprire la form
SCELTE che roba eh!
vediamo se Tanimon o altri vbaisti ti leggono
ciao,
ciao Gian 🤣
non ho tempo per scaricare e verificare tutto il progetto, ma...
a cosa serve quel
Call Cmb_cancella_Click
in terz'ultima riga nella macro che hai postato?
ciao
Frank
ciao
a me va in errore subito
quel Scelte non so cosa sia
Private Sub workbook_open()
Scelte.Show vbModeless
Questa_cartella_di_lavoro.Protect Password:="Nutella_78"
If Application.UserName = "Tessari Luca" Then
Questa_cartella_di_lavoro.Unprotect Password:="Nutella_78"
End If
End Sub
SCELTE che roba eh!
scelte è una altra userform che non è presente nel file che hop ostato
quel Scelte non so cosa sia
tolgo le protezioni, scusate
SCELTE che roba eh!
scelte è una altra userform che non è presente nel file che hop ostato
la prossima volta cerca di fare più attenzione e di non farmi impazzire il Moderatore... 🤣 🤣 🤣 🤣
ciao
ragazzi va bene non essere esperto di vba ma neanche proprio "macaco"
ma l'avevo capito eh! 😆
esegui la macro passo passo con il tasto F8, verifica il valore delle variabili che man mano vengono valorizzate e passo passo una riga di codice alla volta,
cosa succede sul foglio.
Io in questo periodo ho internet a singhiozzo e poco tempo per farlo.
ciao
Frank
ciao
ragazzi va bene non essere esperto di vba ma neanche proprio "macaco"
ma l'avevo capito eh! 😆
🤣 era per farci una risata 🤣 🤣 🤣
ciao
secondo errore se provo ad aprire la form
fan brodo torno alle mie formule 😆
