Range avec variable

Toug

XLDnaute Junior
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?
 

Misange

XLDnaute Barbatruc
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.
 

Toug

XLDnaute Junior
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

  • Classeur2.xls
    45.5 KB · Affichages: 55
  • Classeur2.xls
    45.5 KB · Affichages: 58
  • Classeur2.xls
    45.5 KB · Affichages: 53

Pierrot93

XLDnaute Barbatruc
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
 

Toug

XLDnaute Junior
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.
 

Pierrot93

XLDnaute Barbatruc
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"...
 

Discussions similaires

Réponses
12
Affichages
252

Statistiques des forums

Discussions
312 321
Messages
2 087 265
Membres
103 501
dernier inscrit
talebafia