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 😆