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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:

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
 '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