Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    5

    [VBA] Confronto valori in celle di file Excel

    Buongiorno a tutto il Forum.
    Ho bisogno di una mano, spero che mi possiate aiutare:

    Ho un foglio di calcolo Excel:
    Ogni settimana vengono inseriti in una colonna dei valori (circa 60 celle)
    Devo fare in modo che la colonna appena inserita, deve confrontarsi , ogni cella con la colonna della settimana precedente e se vi sono due valori uguali (due settimane simili) generare un errore (msgbox) oppure colorarmi le celle con i valori simili di rosso.
    Ho provato a crearmi un codice da autodidatta della situazione, ma � troppo prolisso.
    Io ho pensato in questo modo:
    pulsante di attivazione macro di avvio macro:
    -macro1 : Controllo prima riga di celle del foglio1 - se trova un valore pari a "null" torna indietro ed esamina le due righe precedenti .
    -macro 2: esamina cella=cella ritorna un messaggio errore.
    Per� in questo caso se ho 5 celle con valori uguali avr� 5 msgbox?

    Mi aiutate per favore?

    Grazie mille

  2. #2
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    allega un file di esempio con dati e risultato desiderato

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quote Originariamente inviata da patel Visualizza il messaggio
    allega un file di esempio con dati e risultato desiderato
    Oltre a questo, aggiungerei anche una proposta di soluzione o qualche precisazione sui dubbi specifici.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    5

    Aiuto per un rompicapo 2:

    Quote Originariamente inviata da patel Visualizza il messaggio
    allega un file di esempio con dati e risultato desiderato
    Scusate se sono un po "spartano",
    Come dicevo:
    ho un foglio Excel, ogni settimana viene aggiunta una "WEEK" e devo fare confrontare la nuova colonna inserita con quella precedente.
    Se i valori confrontati sono simili, la cella attuale diventa Rossa oppure mi genera un msgbox.
    (Allego sotto un esempio di codice, non mi menate, sono un autodidatta...)




    Esempio di codice di controllo Celle WEEK:

    Private Sub Trova_WEEK()
    'trova l'ultima week disponibile e avvia il processo

    Sheets("Foglio1").Range("A1:J500").Interior.Color = xlNone
    Worksheets("Foglio1").Activate
    If Range("I1").Value = Null Then
    MsgBox ("ok")
    ElseIf Range("h1").Value <> 0 Then
    Application.Run ("verifica_h1")
    'MsgBox ("no")
    ElseIf Range("G1").Value = 0 Then
    MsgBox ("ok")
    ElseIf Range("F1").Value <> 0 Then
    Application.Run ("verifica1")
    'MsgBox ("no")
    End If
    End Sub


    Questo invece è il codice di confronto celle:

    Private Sub verifica_h1()
    'Verifica la colonna ed i valori della colonna,genera errrore
    If Range("H3") = Range("G3") Then
    Range("g3:H3").Interior.Color = 255
    MsgBox "ATTENZIONE CI SONO VALORI UGUALI PER DUE SETTIMANE..", vbExclamation, "VALORI SIMILI ....ATTENZIONE"
    End If
    If Range("h4") = Range("g4") Then
    Range("g4:H4").Interior.Color = 255
    MsgBox "ATTENZIONE CI SONO VALORI UGUALI PER DUE SETTIMANE..", vbExclamation, "VALORI SIMILI ....ATTENZIONE"
    End If
    End Sub

    Purtroppo mi ritrovo a dover scrivere cella per cella il codice di confronto, vorrei non doverlo fare così lungo, se ci fosse un confronto tipo RANGE...che mi confronti i valori in un dato RANGE nelle singole celle....una volta trovato mi generi un evento (msgbox oppure colorazione cella).





  5. #5
    Utente di HTML.it L'avatar di patel
    Registrato dal
    Jan 2008
    Messaggi
    1,994
    Ok per aver allegato il codice che hai scritto, ma avevo chiesto un file di esempio in modo da testare la soluzione

  6. #6
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Il codice della routine verifica_h1() devi essere inserito in un ciclo For/Next e rendere la lettura del Range dinamica, riga per riga.
    Qualcosa del tipo (scrivo al 'volo' quindi possono esserci errori. Da verificare...):
    codice:
    Private Sub verifica_h1(ByVal numeroRighe As Integer)
        Dim i As Integer
        For i = 3 to numeroRighe
           If Range("H" & i) = Range("G" & i) Then
                Range("H" & i ":G" & i).Interior.Color = 255
             End If
        Next i
    End Sub

    P.S. Il codice va scritto utilizzando il tag CODE, NON IN ROSSO!!!
    E devi usare un titolo esplicativo.
    In sostanza: leggi e rispetta il REGOLAMENTO.

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    5

    Ricerca Valori in Colonne Excel.

    Buonasera,
    Scusatemi per non aver inserito il file Excle di esempio.
    Lo inserisco in questo momento.
    Non capisco come mettere il codice in TAG CODE.

    Comunque, quello che devo fare come avevo già spiegato è questo:

    Ogni Setttimana aggiungo una colonna di dati:


    - Ricerco nelle WEEK l'ultima settimana inserita.

    - Confronto l'ultima colonna inserita con la colonna precedente e se ci sono dei valori uguali, restituire un errore, tipo msgbox oppure colorare le celle con i valori uguali di rosso.

    - Il codice che io ho fatto mi fa questo, ma in caso di valori uguali, mi restituisce diverse volte il msgbox.

    Spero di essermi spiegato bene.
    codice:
    Private Sub Trova_WEEK()
     'trova l'ultima week disponibile e avvia il processo
     
    Sheets("Foglio1").Range("A1:J500").Interior.Color = xlNone
    Worksheets("Foglio1").Activate
    If Range("I1").Value = Null Then
    MsgBox ("ok")
    ElseIf Range("h1").Value <> Null Then
    Application.Run ("verifica_h1")
    'MsgBox ("no")
    ElseIf Range("G1").Value = 0 Then
    MsgBox ("ok")
    ElseIf Range("F1").Value <> 0 Then
    Application.Run ("verifica_h1")
    'MsgBox ("no")
    End If
    End Sub
    Private Sub verifica_h1()
    'Verifica la colonna ed i valori della colonna,genera errrore
    If Range("H3") = Range("G3") Then
    Range("g3:H3").Interior.Color = 255
    MsgBox "ATTENZIONE CI SONO VALORI UGUALI PER DUE SETTIMANE..", vbExclamation, "VALORI SIMILI ....ATTENZIONE"
    End If
    If Range("h4") = Range("g4") Then
    Range("g4:H4").Interior.Color = 255
    MsgBox "ATTENZIONE CI SONO VALORI UGUALI PER DUE SETTIMANE..", vbExclamation, "VALORI SIMILI ....ATTENZIONE"
    End If
    End Sub

    Grazie a tutti per l'aiuto.

    P.s.Non riesco ad inserire il file Excel per l'esempio.


  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    5
    Vi invio uno screen-shot di esempio:

    excel.JPG

  9. #9
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Ma, almeno hai provato il codice che ti ho indicato io?
    Non mi pare...

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2018
    Messaggi
    5
    Ciao Gibra, ho provato il tuo codice mi genera un errore (la riga la scrivo sotto) :

    codice:
    Private Sub verifica_h1(ByVal numeroRighe As Integer)
    Dim i As Integer
    For i = 3 To numeroRighe
    If Range("H" & i) = Range("G" & i) Then
    Range("H" & i ":G" & i).Interior.Color = 255
    End If
    Next i
    End Sub
    La riga di codice mi da questo errore:
    Errore di compilazione: previsto sepratore di elenco oppure )


    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.