Bonjour,
je cherche à créer une macro pour voir les valeurs d'une colonne qui sont déjà présentes dans les colonnes précédentes
voici mon code :
"Num_semaine" est recupérée dans la feuille excel.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39 Private Sub rechercher_Click() 'recherche si les jobs de la dernière semaine sont déjà apparus auparavant Dim colonne As Integer Dim i As Integer Dim j As Integer Dim k As Integer Dim marque As Integer Dim chaine As String marque = 0 i = 2 j = 1 chaine = "Voici les jobs dont c'est la première apparition : " If (Num_semaine.Value < 0 Or Num_semaine.Value = "" Or Num_semaine.Value > Sheets.Count - 1) Then MsgBox ("Valeur de semaine incorrecte") Else colonne = Num_semaine.Value For k = 2 To 51 'on parcourt les 50 lignes de la derniere colonne Do While marque = 0 If (Worksheets(1).Range(Cells(k, colonne), Cells(k, colonne)).Value = Worksheets(1).Range(Cells(i, j), Cells(i, j)).Value) Then marque = 1 'on arrete la recherche car la valeur a été trouvée Else 'la valeur n'a pas été trouvée If (i <= 51) Then 'si on n'est pas à la derniere ligne de la colonne on passe à la ligne suivante i = i + 1 Else 'Si on est à la derniere ligne de la colonne alors on passe à la premiere ligne de la colonne suivante i = 2 j = j + 1 If (j = colonne) Then 'si on n'a pas trouvé la valeur alors on arrete la recherche et on ajoute le nom à la chaine de caractere marque = 1 chaine = chaine & Worksheets(1).Range(Cells(k, colonne), Cells(k, colonne)).Value End If End If End If Loop marque = 0 Next MsgBox (chaine) End If End Sub
Le problème est que le message apparaissant ne me donne que le résultat de la premiere ligne testé(en fait ici la deuxieme ligne de la feuille car la premiere contient les libéllés), c'est à dire que si je lance la recherche pour la colonne 1, je devrais avoir toutes lse lignes car elles ne sont jamais apparues avant mais je n'ai que la premiere (si je met "for k=3 to 51", jai alors la ligne suivante etc.....) c'est donc je pense un probleme au niveau de la boucle mais je ne vois pas où, j'ai pourtant bien réaffecté la valeur 0 à "marque" apres le while.
Merci de vos réponses
Partager