Bonjour à tous,
Très autodidacte, Je viens souvent sur ce site piocher des informations très utiles pour créer mes propres macros VBA et ainsi améliorer mon utilisation Excel ; c'est donc la première fois que je fais appel à votre aide.
Et malgré mes recherches, je ne trouve pas la solution à mon problème qui peut vous paraître evident...
Je retraite un fichier texte dans Excel et je supprime des lignes inutiles en m'apuyant sur une recherche par mot clé se trouvant dans le fichier. Jusqu'à présent, j'utilisais une seule recherche dans une macro et cela fonctionnait plutôt bien.
Je me rends compte qu'aujourd'hui, en ajoutant une seconde recherche, que j'ai une erreur de type "run-time error 91" "Object Variable or With Block variable not set" et je ne trouve pas et ne vois pas à quel type de problème auquel je suis confronté pour pouvoir le résoudre.
Lorsque je fais une seule recherche, j'utilise le code suivant et je ne rencontre aucun souci. je fais une recherche sur le contenu d'une cellule, et je supprime les 6 lignes precedents et les 4 lignes suivantes sur tout le fichier :
Sur le meme fichier je decide alors de faire plusieurs traitements du meme genre et j'ai donc tout naturellement copier/coller le meme code pour chercher sur un autre contenu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 range("A1").Select On Error GoTo sortie Do cells.Find(What:="P.APAD", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate range(ActiveCell.offset(-6, 0), ActiveCell.offset(4, 0)).Select selection.EntireRow.Delete Loop sortie:
Mais Excel ne le comprend pas comme je le souhaiterais
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 'suppression lignes en-têtes range("A1").Select On Error GoTo sortie Do cells.Find(What:="P.APAD", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate range(ActiveCell.offset(-6, 0), ActiveCell.offset(4, 0)).Select selection.EntireRow.Delete Loop sortie: 'suppression lignes titres range("A1").Select On Error GoTo sortie1 Do cells.Find(What:="VENDOR/", After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _ False, SearchFormat:=False).Activate range(ActiveCell.offset(-1, 0), ActiveCell.offset(2, 0)).Select selection.EntireRow.Delete Loop sortie1:![]()
Je n'arrive surtout pas à comprendre pourquoi une recherche se passé bien, et 2 traitements ça coince...
Est-ce que quelqu'un pourrait m'éclairer sur ce point ?
Merci d'avance.
Partager