Bonjour à tous,
Un problème sur lequel je m'arrache les cheveux depuis un petit moment ce matin :
Je désire créer une macro avec un sub positionnement_données qui permet de repérer un texte en parcourant un certain range de cellule "domaine" et de placer dans une autre cellule (avec un offset choisi) une valeur "val". Pour la partie recherche, j'utilise notamment la méthode .Find sur mon domaine.
Voila où est mon soucis : le code suivant (de base, disons, car pas encore paramétré, etc...) fonctionne correctement :
Par contre, dés l'instant où j'essaie de paramétriser, notamment en considérant une range appelée Domaine, ça ne marche plus !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Public Sub Main() Application.ScreenUpdating = False 'On recherche la ligne correspondant au modèle : attention, on ne trouve que le premier avec ce nom. RC_Row = ActiveWorkbook.Worksheets(4).Range("A1:A6").Find(What:="Test", LookIn:=xlValues).Row RC_Column = ActiveWorkbook.Worksheets(4).Range("A1:A6").Find(What:="Test", LookIn:=xlValues).Column Column_Val = RC_Column + 1 Row_Val = RC_Row + 0 ActiveWorkbook.Worksheets(4).Cells(Row_Val, Column_Val).Value = "Val" Application.ScreenUpdating = True End Sub
Et le message d'erreur suivant apparait pour la ligne 10 (RC_Row=...) :
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 Public Sub Main() ' Sheets("Template_1").Visible = True ' Sheets("Template_1").Select ' Domtest = Worksheets("Template_1").Cells(1, 1) 'Sheets("Template_1").Visible = True 'Sheets("Template_1").Select Domaine = ActiveWorkbook.Worksheets(4).Range("A1:A6") Application.ScreenUpdating = False 'On recherche la ligne correspondant au modèle : attention, on ne trouve que le premier avec ce nom. RC_Row = Domaine.Find(What:="Test", LookIn:=xlValues).Row RC_Column = Domaine.Find(What:="Test", LookIn:=xlValues).Column Column_Val = RC_Column + 1 Row_Val = RC_Row + 0 ActiveWorkbook.Worksheets(4).Cells(Row_Val, Column_Val).Value = "Val" Application.ScreenUpdating = True End Sub
Le problème viendrait donc de la ligne 7, où je définis domaine, mais impossible de comprendre pourquoi... Je viens donc chercher des lumières ici.Erreur d'exécution '424' :
Objet requis
Des suggestions ? Merci d'avance.
PS : Je sais que ce code manque quelques tests (du style "Et si le texte n'est pas trouvé ?") mais là, dans l'exemple que j'utilise, le texte "Test" est bien présent donc ce n'est pas un problème.
Partager