Vba excel confrontare celle



  • Vba excel confrontare celle
    di sasa1993 data: 17/10/2014 15:57:30

    Ciao ragazzi sto cercando di fare un programma vba che da una cercando in una colonna piena di codici clienti se ha lo stesso numero va a confrontare in un altra colonna se i due pagamenti si annullano e se questo è vero mi cambia il colore delle caselle, ho cercato di farlo ma é sicuramente pieno di errori mi potreste aiutare grazie mille
     
    Sub Copia_in_base_a_celle()
        Dim rng As Range, cella As Range
        Dim ng As Range, cella1 As Range
        Dim r As Integer
        Application.ScreenUpdating = False
        Set rng = [A2].End(xlDown)
            For Each cella In rng.Rows
                If cella.Rowns(1).Value = cella.Rowns(2).Value Then
                    Cells(cella.Rowns, 10) = "OK"
                End If
            Next
    End Sub
    



  • di lepat (utente non iscritto) data: 17/10/2014 16:39:19

    il tuo codice è per me incomprensibile, spiega nel dettaglio cosa vuoi fare, sei stato troppo vago.



  • di sasa1993 data: 17/10/2014 16:52:49

    Allora ho un foglio excel dove nella colonna A ho il codice cliente ( ogni cliente ha un numero diverso) e nella colonna D ho le fatture e i crediti, il programma dovrebbe vedere il codice cliente e se ci sono delle fatture e crediti che si annullano e segnalarmelo in qualche modo. Ad esempio se nella casella A3 e A6 c'é lo stesso codice cliente il programma deve andare a vedere se gli importi nella casella D3 e D6 si annullano e scrivermi codice cliente e l'importo da qualche altra parte. spero di essermi spiegato bene Grazie mille dell'aiuto



  • di Lucas87 data: 17/10/2014 17:22:52

    Ciao
    Serve un file di prova



  • di sasa1993 data: 17/10/2014 17:44:36

    In che senso serve un file di prova? La macro è per un foglio solo



  • di Lucas87 data: 17/10/2014 17:55:17

    Perchè per creare una macro serve sapere come è strutturato il foglio e come sono disposti i dati.
    Potremmo farti centinaia di domande per capirlo e impiegare una settimana oppure potresti allegare il file e far risparmiare a te e soprattutto a noi del tempo.
    Se sul file ci sono dei dati sensibili sostituiscili con valori a caso



  • di sasa1993 data: 20/10/2014 09:36:59

    Scusate per il ritardo ma essendo all'estero quando non sono a lavoro non ho internet, io il file ve lo posso mandare ma come faccio ad allegarlo?
    Ho tentato di fare un nuovo codice un po più comprensibile e penso di esserci quasi riuscito grazie mille dell'aiuto siete gentilissimi
     
    Option Explicit
    Sub miasel()
    Dim i, n, cont As Integer
    cont = Range("A2.End(xlDown)").Rows
    For i = 2 To i = cont-1
        For n = 3 To n = cont
            If Range("A2:end(xldown)").Cells(i).Value = Range("A2:end(xldown)").Cells(n).Value     And     Range("A4:end(xldown)").Cells(i).Value - Range("A4:end(xldown)").Cells(n).Value = 0 Then
                Range("A15:end(xldown)").Cells(i).Value = "00000000"
            End If
        Next n
    Next i
    
    End sub



  • di Mister_x (utente non iscritto) data: 20/10/2014 11:22:20

    ciao

    come ti ha detto Lucas87, che saluto, serve un tuo file e cosa vuoi fare su questi

    per darti un esempio della tua sub() che ai postato
    tua
    Dim i, n, cont As Integer
    cont = Range("A2.End(xlDown)").Rows

    impostazione di End()
    Dim i, n, cont As Integer
    cont = Range("A2").End(xlDown).Rows
    primo errore riscontrato

    uso di for
    For i = 2 To i = cont-1
    ----
    For i = 2 To cont-1
    For n = 3 To cont

    nell'If endif altri errori di impostazione

    ciao








  • di sasa1993 (utente non iscritto) data: 20/10/2014 11:39:08

    Ho aggiunto il file non ho molto capito la tua risposta qualé l'errore di cont che non riesco a capire come scriverlo



  • di sasa1993 (utente non iscritto) data: 20/10/2014 12:04:23

    Ho aggiunto il file giusto si chiama esempio spero che sia chiaro grazie ancora



  • di Mister_x (utente non iscritto) data: 20/10/2014 14:25:57

    ciao

    dove e' il file???
    ciao






  • di sasa1993 (utente non iscritto) data: 20/10/2014 14:34:13

    mi sa che non mi fa allegare i files non c'é un altro modo per inviarvelo?



  • di sasa1993 (utente non iscritto) data: 20/10/2014 14:58:26

    Potrei inviarvelo via email scusate se vi assillo ma non capisco che errori ci sono



  • di Lucas87 data: 20/10/2014 15:05:13

    Se non l'hai già fatto prova a creare con i file un archivio .rar o .zip o altri e allegare quello.
    Altrimenti puoi usare dei servizi di cloud come dropbox oppure dei siti. Io di solito uso WeTransfer



  • di sasa1993 (utente non iscritto) data: 20/10/2014 15:12:38

    Mi dice che non si possono inserire link io l'ho caricato su dropbox mi serve un email a cui condividerlo



  • di sasa1993 data: 20/10/2014 15:13:41

    http://we.tl/sNdmdBPgEw



  • di Lucas87 data: 20/10/2014 15:39:56

    Ho il file.
    Es. Con il codice 2010 le fatture sono 69, 78 e -78.
    78 e -78 si annullano...come vuoi che venga indicato?
    Colorando le celle o le righe, scrivendo qualcosa da qualche parte?



  • di sasa1993 data: 20/10/2014 15:41:49

    scrivere il numero cliente in altra riga mi sarebbe molto piu comodo cosi potrei filtrarli



  • di Lucas87 data: 20/10/2014 16:19:24

    Altra domanda: nel caso in cui ci fosse ad esempio 30, -8,-8,-14 cosa dovrebbe succedere?



  • di sasa1993 (utente non iscritto) data: 20/10/2014 16:23:16

    No solo somme uguali +15-15 se ci dovesse essere +7+8-15 non dovrebbe fare niente



  • di sasa1993 (utente non iscritto) data: 20/10/2014 17:00:02

    Ma il mio codice VBA é cosi corrotto? :(



  • di Lucas87 data: 20/10/2014 17:20:47

    Prova questo.
    Scrive in colonna G, H e I il codice cliente e i valori che si annullano
     
    n = 1
    For i = 2 To Range("a" & Rows.Count).End(xlUp).Row
        r = i + 1
        Do While Cells(i, 1) = Cells(r, 1)
            If Cells(i, 4) + Cells(r, 4) = 0 Then
                Cells(n, 7) = Cells(i, 1)
                Cells(n, 8) = Cells(i, 4)
                Cells(n, 9) = Cells(r, 4)
                n = n + 1
            End If
            r = r + 1
        Loop
    Next



  • di sasa1993 (utente non iscritto) data: 20/10/2014 18:25:00

    Grazie mille funziona! Sei stato gentilissmo e bravissimo