Comparaison de cellules
Bonjour a tous,
Avant de poser ma question , je tiens a remercié tout les membres, qui grâce vos réponses dans les différents sujets dans ce forum permettent a des personnes novice en VBA comme moi d'oser se lancer en toute sérénité.
Je vous expose mon problème ;
Dans le fichier joint y a un tableau qui représente en colonne A le numéro des plateaux utilisés dans un chantier, et les colonnes restantes représente les niveaux dans les quels le plateau est utilisé (la valeur notée dans la cellule représente la longueur du plateau qui change très rarement d'un niveau a un autres). Et la colonne Maxi représente la longueur maximale du plateau dans tout les niveaux, la cellule bleu n'a aucune signification on la considère comme une cellule normale.
Mon but est de faire en sorte qu'excel compare chaque cellule (qui n'est pas jaune ou verte ou rouge) d'une ligne avec les cellules (blanches jaunes et vertes) qui se trouvent dans la même colonne, et si les deux cellules comparées ont la même valeur il passe a la suivante sinon il note dans une autre feuille colonne les numéro des plateaux correspondant a chaque cellule avec un tiret qui les sépare.
Exemple:
B3 sera comparée avec toutes les cellules de B4 a B18 , la B3 et la B4 ont la même valeur alors il passe a la suivante , B3 et B5 n'ont pas la même valeur alors il va sur une autre feuille et il note (2 - 13 ) qui représente le numéro du plateaux correspondant a B3 et B5. et ainsi de suite et des qu'il passe sur une autre colonne les résultat seront noté sur la feuille qu'il a créer mais dans une autre colonne.
cette comparaison ne doit pas se faire sur la colonne N° et la colonne Maxi.
j'espère que vous arrivez a comprendre ma demande, merci par avance pour vos réponses.
Merci beaucoup pour votre réponse, votre travail fait la partie la plus grande du résultat recherché
Encore merci pour votre réponse.
bonjour,
Sub aargh()
With Sheets("feuil1")
dl = .Cells(Rows.Count, 1).End(xlUp).Row 'dernière ligne contenant des données en colonne A sur feuil1
Set ws = Sheets.Add 'on ajoute une nouvelle feuille pour y mettre les résultats
l = 1 ' n° de ligne pour résultats
c = 1 'n° de colonne pour résultats
k = 2 'n° de colonne sur feuil1, on commence à la colonne 2
While .Cells(2, k) <> "Maxi" 'pour chaque colonne k, tant que l'entête de colonne est <> de Maxi
For i = 3 To dl 'on parcourt les lignes de données de feuil1
If .Cells(i, k) <> "-" And .Cells(i, k) <> "*" Then 'si ligne ne contient pas - ni *
For j = i + 1 To dl 'on parcourt les lignes suivantes
If .Cells(i, k) <> .Cells(j, k) Then 'on a trouvé un ligne avec une valeur différente
l = l + 1 'on incrémente le n° de ligne résultats
ws.Cells(l, c) = "'" & .Cells(i, 1) & "-" & .Cells(j, 1) 'on met le N° de la première ligne et le N° de la ligne en cours dans résultats
End If
Next j
End If
Next i
k = k + 1 ' colonne suivante sur feuil1
c = c + 1: l = 1 'colonne suivante sur résultats
Wend
End With
End SubMerci beaucoup pour votre aide, je vais travaillais sur votre code pour l'adapter encore plus a mon petit projet de macro. je vais mettre le sujet "Résolu" .
Encore merci