VBA [Résolu]

Signaler
Messages postés
29
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
31 août 2009
-
Messages postés
29
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
31 août 2009
-
Bonjour;

Étant débutant en VBA et programmation en général, comment fait on pour comparer deux colonnes Excel et inscrire le résultat de la comparaison dans une troisième. Je ne connais pas le nombre de cellules dans les colonnes. Le mieux est que le programme détecte la première cellule vide et s'arrête, avec auparavant une suppression  de toutes les cellulles vides de chaque colonne.

Merci d'avance pour votre aide   

4 réponses

Messages postés
80
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
2 octobre 2009

ok donc dans ce cas là c'est assez simple :

  For i = 1 to F_L_DerniereLigne()
     If ThisWorkbook.ActiveSheet.Cells(i,"A").value = _
        ThisWorkbook.ActiveSheet.Cells(i,"B").value then
            ThisWorkbook.ActiveSheet.Cells(i,"C").value = "Pareil"
     Else
            ThisWorkbook.ActiveSheet.Cells(i,"B").value = "different"
     End if       
  Next i

Apres il te reste à voir les autres petits trucs ... mais n'hesite pas à regarder dans le forum et les tutoriaux si il existe pas déjà des explications du genre
Messages postés
80
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
2 octobre 2009

Salut

  pour la comparaison de deux colonnes faudra être plus précis ^^ en effet qu'est ce que tu veux comparer ? la valeur des cellules une à une ? le nombre de cellules remplies ?? ou autres ^^

pour calculer la dernière ligne voilà une petite fonction qui devrait t'aider

Public Function F_L_DerniereLigne(Sh As Worksheet) As Long

' on initialise la fonction à 0
    F_L_DerniereLigne = 0
    ' on signale au prog que si O_GestionErreur alors passez à la suite
    On Error Resume Next
    ' calcul de la ligne si possible
    F_L_DerniereLigne = Sh.Cells.Find(What:="*", _
                                      after:=Sh.Range("A1"), _
                                      LookAt:=xlPart, _
                                      LookIn:=xlFormulas, _
                                      SearchOrder:=xlByRows, _
                                      SearchDirection:=xlPrevious, _
                                      MatchCase:=False).Row

End Function

Cette fonction te permet de détecter la dernière ligne d'une feuille, suffit de l'adapter pour que cela se porte sur ta colonne ^^ 
Messages postés
29
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
31 août 2009

Salut;

Oui en fait je compare la valeur des cellules une à une....et j'aimerai que la comparaison s'arrête quand elle rencontre une cellule vide..

merci
Messages postés
29
Date d'inscription
vendredi 16 mai 2008
Statut
Membre
Dernière intervention
31 août 2009

Je te remercie