Bonjour tout le monde,
je suis débutant des macros.J'ai 2 questions sur les macros que j'ai fait et que je ne comprends pas pourquoi, c comme ça.
1er: c'est plutôt une remarque.
Je remplis une colonne de la table Excel avec une fonction
Worksheets(currentsheet3).Cells(k3 + 1, 1).Value = ListOfDeal(1)(IndiceDernierDeal - n).operationId
ListOfDeal(1)(IndiceDernierDeal - n).operationId est l'attribut d'un objet.
Quand je regarde le résultat, il affiche tout le temps ########### dans les cases de cette colonne, mais quand je double clique sur une case, la bonne valeur est affichée.
2e: est effectivement un bug
Je compare les de colonnes ID de 2 sheets, si le ID de la sheet A est parmi les ID de la sheet B, je garde la ligne, sinon, je supprime cette ligne.
le code est:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| 'Activer ThisWorkBook et prendre chaque cellule "A1", cherche dans la colonne AA de la workbook wb2, si ça existe, on le garde, sinon, on supprime cette ligne.
ThisWorkbook.Activate
For i = 1 To Sheets("sheet2").Range("A1").End(xlDown).Row
Id = Sheets("sheet2").Range("A" & i).Value
If wb2.Sheets("sheet1").Range("AA:AA").Find(Id) Is Nothing Then
Sheets("sheet2").Rows(i).Delete
i = i - 1
End If
If Range("A" & i + 1).Value = "" Then Exit For
Next i
For i = 1 To Sheets("sheet3").Range("A1").End(xlDown).Row
Id = Sheets("sheet3").Range("A" & i).Value
If wb2.Sheets("sheet1").Range("AA:AA").Find(Id) Is Nothing Then
Sheets("sheet3").Rows(i).Delete
i = i - 1
End If
If Range("A" & i + 1).Value = "" Then Exit For
Next i |
Mon problème est que si je lance directement le macro, il peut avoir que quand il boucle, le contenu de Id = empty, sans faire la comparaison, il termine.
Mais si je créée un breakpoint au début, par exemple vers la ligne ThisWorkbook.Activate. et je lance F8 par F8, il peut trouver la bonne valeur de Id, et je peux relancer en F5 pour qu'il boucle jusqu'à la fin et sortir les bons résultats.
Je pense qu'il y a forcément des pièges ou mes codes ne sont pas correctement programmés.
Merci de m'indiquer si vous voyez.
Bonne journée tout le monde
Partager