Modifica dati da us...
 
Notifiche
Cancella tutti

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.

Modifica dati da userform a foglio excel con data (da/a)

25 Post
3 Utenti
1 Reactions
344 Visualizzazioni
Forum 1
(@luca_1978)
Post: 0
New Member
Avviatore di Topic
 

Postato da: @gianfranco55

iao

secondo errore se provo ad aprire la form

image

fan brodo torno alle mie formule 😆

ho provato ad aprirla, a me non dà errore 

 
Postato : 29/07/2024 14:58
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

ciao

Luca guarda ti ho messo l'immagine ma io non faccio

testo con il VBA......lo leggo e cerco di imparare.

diverso è con le formule

vedi che Tanimon o altri ti sistemano la macro

loro sono esperti in VBA

 

 

 

 
Postato : 29/07/2024 15:02
Forum 1
(@luca_1978)
Post: 0
New Member
Avviatore di Topic
 

Postato da: @tanimon

toglilo dalla macro ed inseriscilo nell'evento query_close del form

scusa  tanimon non ho capito cosa intendi per "nell'evento query_close del form"

perdonami non sono molto bravo con VBA

 
Postato : 29/07/2024 15:02
Forum 1
(@luca_1978)
Post: 0
New Member
Avviatore di Topic
 

Postato da: @gianfranco55

ciao

Luca guarda ti ho messo l'immagine ma io non faccio

testo con il VBA......lo leggo e cerco di imparare.

diverso è con le formule

vedi che Tanimon o altri ti sistemano la macro

loro sono esperti in VBA

ok 

 
Postato : 29/07/2024 15:07
tanimon
(@tanimon)
Post: 0
New Member
 

Ciao,

come saprai o ti hanno detto in altre occasioni,
rivedere un progetto complesso come il tuo già in fase avanzata e senza conoscere i criteri delle
lavorazioni/elaborazioni che deve effettuare, è particolarmente difficoltoso anche perchè ognuno
ha il proprio stile e criteri di stesura del codice necessario.

Ovviamente non ho intenzione di rifartelo da capo....

ma ti sottopongo alcuni dubbi...

'qui setti  la varibile ws come "Calendario_visita"
Set ws = ThisWorkbook.Sheets("Calendario_visita")

'qui il foglio definito ws, lo richiami con il suo nome originale.... e comunque non credo che l'istruzione funzioni
Foglio8.Activate


'================================================================================
avviso = MsgBox("Sei sicuro di voler MODIFICARE la visita?", vbYesNo + vbQuestion, "Avviso")


If avviso = vbNo Then
'=====================================================================
' qui lo capisco ancora meno.... se non voglio MODIFICARE la visita cliccando NO sul messaggio,
' io i dati li manterrei...
' invece tu vuoi pulire il Form.... bah....

    Call Cmb_cancella_Click
    Exit Sub
End If
 
Postato : 29/07/2024 15:39
gianfranco55
(@gianfranco55)
Post: 1797
Moderatore
 

Ciao

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Call Cmb_cancella_Click
End Sub
 
Postato : 29/07/2024 15:40
Luca_1978 reacted
Forum 1
(@luca_1978)
Post: 0
New Member
Avviatore di Topic
 

Postato da: @tanimon

Ciao,

come saprai o ti hanno detto in altre occasioni,
rivedere un progetto complesso come il tuo già in fase avanzata e senza conoscere i criteri delle
lavorazioni/elaborazioni che deve effettuare, è particolarmente difficoltoso anche perchè ognuno
ha il proprio stile e criteri di stesura del codice necessario.

Ovviamente non ho intenzione di rifartelo da capo....

ma ti sottopongo alcuni dubbi...

'qui setti  la varibile ws come "Calendario_visita"
Set ws = ThisWorkbook.Sheets("Calendario_visita")

'qui il foglio definito ws, lo richiami con il suo nome originale.... e comunque non credo che l'istruzione funzioni
Foglio8.Activate


'================================================================================
avviso = MsgBox("Sei sicuro di voler MODIFICARE la visita?", vbYesNo + vbQuestion, "Avviso")


If avviso = vbNo Then
'=====================================================================
' qui lo capisco ancora meno.... se non voglio MODIFICARE la visita cliccando NO sul messaggio,
' io i dati li manterrei...
' invece tu vuoi pulire il Form.... bah....

    Call Cmb_cancella_Click
    Exit Sub
End If

in effetti si non hanno molto senso

 

 

 
Postato : 29/07/2024 16:17
Forum 1
(@luca_1978)
Post: 0
New Member
Avviatore di Topic
 
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, i As Long

startDate = DateSerial(CInt(Cbo_Anno.Value), Cbo_Mese1.ListIndex + 1, CInt(Cbo_giorno_da.Value))
endDate = DateSerial(CInt(Cbo_Anno.Value), Cbo_Mese3.ListIndex + 1, CInt(Cbo_giorno_a.Value))
Set ws = ThisWorkbook.Sheets("Calendario_visita")

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row

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
End If

avviso = MsgBox("Sei sicuro di voler MODIFICARE la visita?", vbYesNo + vbQuestion, "Avviso")

If avviso = vbNo Then
    Exit Sub
    Else
    For i = 2 To lastRow
        If IsNumeric(ws.Cells(i, 5).Value) And IsNumeric(ws.Cells(i, 6).Value) And IsNumeric(ws.Cells(i, 7).Value) Then
        On Error Resume Next
        currentDate = DateSerial(ws.Cells(i, 5).Value, ws.Cells(i, 6).Value, ws.Cells(i, 7).Value)
        If Err.Number <> 0 Then
                MsgBox "Errore nella conversione della data alla riga " & i & ". Controlla i valori delle celle per l'anno, mese e giorno.", vbExclamation
                Err.Clear
            ElseIf 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
    lastRow = lastRow + 1
    Next i
End If

MsgBox "Dati aggiornati con successo."
    
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

ActiveWorkbook.Save
End Sub

Ho modificato il codice ma continua a non modificare il file excel, ora non da più errore per le date.

 

 
Postato : 30/07/2024 08:45
tanimon
(@tanimon)
Post: 0
New Member
 

 

Ho verificato e con qualche accorgimento, la macro Inserisci_Click, funziona ma non capisco:

 

perchè nella macro Inserisci_Click lo scrivi come testo

ws.Cells(rowCount, 6).Value = MonthName(Month(currentDate))

 

e nella macro Conferma_Click 

lo verifichi come IsNumeric

If IsNumeric(ws.Cells(i, 5).Value) And IsNumeric(ws.Cells(i, 6).Value) And IsNumeric(ws.Cells(i, 7).Value) Then

Ripeto, non capisco...

 

============================================================

 

 

questo potrebbe accorciare il codice per verificare se le combo sono validate

 

'============================================
' abbrevia il codice e migliora la leggibilità
Dim ctr As control
For Each ctr In Me.Controls
    If Left(ctr.Name, 3) = "Cbo" Then
        If ctr = "" Then
           MsgBox "Attenzione validare la combobox", vbExclamation, "AVVISO"
           ctr.SetFocus
           Exit Sub
        End If
    End If
Next ctr
'============================================

 

troppe cose... da controllare

 

rinuncio e saluto definitavamente

 

 
Postato : 30/07/2024 16:44
Forum 1
(@luca_1978)
Post: 0
New Member
Avviatore di Topic
 

Postato da: @tanimon

Ho verificato e con qualche accorgimento, la macro Inserisci_Click, funziona ma non capisco:

si la macro inserisci click funziona e quella Conferma_Click  che che non modifica

Postato da: @tanimon

e nella macro Conferma_Click 

lo verifichi come IsNumeric

Ho messo il controllo in quanto mi dava errore 

 
Postato : 31/07/2024 07:35
Pagina 2 / 2
Condividi:
My Agile Privacy
Questo sito utilizza cookie tecnici e di profilazione. Cliccando su accetta si autorizzano tutti i cookie di profilazione. Cliccando su rifiuta o la X si rifiutano tutti i cookie di profilazione. Cliccando su personalizza è possibile selezionare quali cookie di profilazione attivare.
Attenzione: alcune funzionalità di questa pagina potrebbero essere bloccate a seguito delle tue scelte privacy
     Scarica il nostro ebook gratuito     

Unisciti a oltre 35.000 professionisti
che hanno già scelto di semplificare il proprio lavoro
e aumentare la produttività con la nostra newsletter!

Scarica l’ebook con i
migliori trucchi e suggerimenti per Excel
selezionati per te da Excel Academy

Download