• Initiateur de la discussion Initiateur de la discussion Toug
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Toug

Guest
Je souhaite choisir un range en utilisant deux variable.
En gros je voudrais l'utiliser pour faire une recherche dans la colonne A entre les lignes pointés par les variables D3 et D4.

Voici ce que j'utilise:
Range("A" & D3 & ":A" & D4)

Mais lorsque j'effectue la recherche, il me fait également la recherche aprés la ligne D4.

Y'aurait-il une erreur dans le Range?
 
Re : Range avec variable

@TempusFugit
peu importe ! excel sait tout à fait interpréter les espaces. Perso j'en ajoute par exemple très souvent dans des formules pour m'en simplifier la lecture et la correction. Idem dans VBA. Je voulais juste dire que la source de l'erreur ne venait pas du tout de cet espace mais bien de l'erreur sur le nom de la feuille.
 
Re : Range avec variable

Re,
En fait ça marche bien sauf si une seule cellule "En Cours" est trouvée dans chaque chapitre.
Si y'a qu'une cellule, j'ai une erreur "Variable objet ou variable de bloc With non définie" sur la ligne
Code:
Loop While Not c Is Nothing And c.Address <> firstAddress

snif
 

Pièces jointes

Re : Range avec variable

Re,

modifie comme suit :
Code:
Sub test2()
Dim D3 As Integer
Dim D4 As Integer
D3 = 7
D4 = 27
entité = "En Cours"
With Sheets("Feuil1").Range("A" & D3 & ":A" & D4)
    Set c = .Find(entité, LookIn:=xlValues, lookat:=xlPart)
    If Not c Is Nothing Then
      firstAddress = c.Address
          Do
            MsgBox (c.Address)
            Set c = .FindNext(c)
            If c Is Nothing Then Exit Do
          Loop While c.Address <> firstAddress
    End If
End With
End Sub
 
Re : Range avec variable

Re,

modifie comme suit :
Code:
Sub test2()
Dim D3 As Integer
Dim D4 As Integer
D3 = 7
D4 = 27
entité = "En Cours"
With Sheets("Feuil1").Range("A" & D3 & ":A" & D4)
    Set c = .Find(entité, LookIn:=xlValues, lookat:=xlPart)
    If Not c Is Nothing Then
      firstAddress = c.Address
          Do
            MsgBox (c.Address)
            Set c = .FindNext(c)
            If c Is Nothing Then Exit Do
          Loop While c.Address <> firstAddress
    End If
End With
End Sub

Bravo! Franchement tu maitrises. Tu pourrais m'expliquer vite fait ce que font tes modifications?
le lookat:=xlpart, et la modif de la condition de sortie du Do Loop.
Encore merci.
 
Re : Range avec variable

Re,

"xlpart", la valeur recherchée peut être une partie de la cellule... si le contenu doit corespondre exéctement mettre "xlWhole ".. Pour la sorie, si la recherche suivante (FindNext) n'a rien donnée, la variable "c" se trouve initialisée à "nothing", si c'est le cas sortie de la boucle "do loop"...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Microsoft 365 agrandir la liste
Réponses
21
Affichages
664
Retour