VBA

Résolu
Prich Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 31 août 2009 - 9 févr. 2009 à 09:57
Prich Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 31 août 2009 - 9 févr. 2009 à 11:11
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

hebus16 Messages postés 80 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 2 octobre 2009 1
9 févr. 2009 à 10:54
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
3
hebus16 Messages postés 80 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 2 octobre 2009 1
9 févr. 2009 à 10:15
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 ^^ 
0
Prich Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 31 août 2009
9 févr. 2009 à 10:43
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
0
Prich Messages postés 29 Date d'inscription vendredi 16 mai 2008 Statut Membre Dernière intervention 31 août 2009
9 févr. 2009 à 11:11
Je te remercie
0
Rejoignez-nous