[Excel-macro] Pb macro recherche avec Offset

Résolu/Fermé
Cedrix - 14 avril 2009 à 13:24
 Cedrix - 14 avril 2009 à 16:10
Bonjour à tous et merci d'avance pour vos réponses,

Voici mon objectif :
Je cherche à réaliser une macro sous Excel permettant d'effectuer une recherche sur la colonne D.
J'ai un nom en cellule G3 que je souhaite chercher sur l'ensemble de la colonne D.
La colonne A est masquée.

Voici ma macro actuelle :
nomrech = Range("G3").Value
Range("D2").Select
For i = 1 To 9999
If ActiveCell.Value = nomrech Then GoTo Fin
ActiveCell.Offset(1, 0).Range("A1").Select
Next
Fin:


Voici mon problème :
Quand je lance ma recherche, la case D2 est bien sélectionnée mais il fois la première boucle effectuée, la boucle ne poursuit pas en D3 mais en B3 puis B4 puis B5 ... (rappel : la colonne A est masquée).

Comment faire pour que ma recherche soit effectuée sur la colonne D ?

Encore merci à ceux qui trouveront une solution à mon problème.

Très cordialement,
Cédric.
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
14 avril 2009 à 14:10
bonjour Cedric

Pas besoin de boucle, essaies
Sub chercher_colD()
Dim nomrech As String, cellule As Range

nomrech = Range("G3")
Set cellule = Range("D1:D65536").Find(nomrech)
 If cellule Is Nothing Then
      MsgBox "inconnu"
Else
      cellule.Select
End If

 Set cellule = Nothing
End Sub


nota: l'utilisation des goto est à proscrire absolument sauf pour la gestion des erreurs

edit 14:15
ici je sélectionne la cellule en colonne D qui contient la valeur en G3; j'ai pas bien compris ton offset avec ni ton range("A1) ni ton "colonne masquée"
--

Cordialement, Michel
1
Merci beaucoup Michel,

Le problème est réglé.

Pour information j'ai décomposé mon ancienne macro et j'ai trouvé l'erreur.
Si cela peut aider du monde dans mon cas :

lors d'un activecell.offset(1,0).range("A1").select ... la macro sélectionne la cellule en dessous de celle sélectionnée.

En ligne 14 j'avais des cellules fusionnées allant de la colonne B à la collone F donc de la ligne 2 à la 13 pas de problème puis lors du passage sur la 14 la cellule D14 est devenue la cellule B14.
Lors de la boucle suivant la macro a donc poursuit sur la cellule B15.

Attention donc au fusions de cellules lors de macros (c'est la leçon du jour pour moi, je vais me coucher moins bête ce soir).

Encore 1000 fois merci pour votre réactivité Michel.

Très cordialement,

Cédric.
0