VBA quel est le range de la cellule trouvée ?

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 !

Kouik Kouik jr

XLDnaute Occasionnel
Bonsoir,

tout débutant que je suis, je n'arrive pas a attribuer un range a une colonne.

Je m'explique: Je sais que la colonne 6 contient le mot "final" en F1 ce qui me donne
colfinale1 = celluletrouvee.Column

Mais ensuite pour la partie rouge je ne sais pas quelle donnée rentrer (certes c'est la colonne "F" cette fois mais laquelle la prochaine fois ?)

La dans l'exemple ci dessous j'ai rentré "celluletrouvee.Column" mais ce n'est pas ca ?

Est ce que quelqu'un aurait une idée ?🙄

Merci de votre aide



i = 1
While i < Fin


Dim celluletrouvee As Range
Dim colfinale1 As Integer


Sheets("HSBC").Select
Set celluletrouvee = Range("A1:O1").Find("final", lookat:=xlPart)
colfinale1 = celluletrouvee.Column


If Worksheets("HSBC").Range("celluletrouvee.Column" & i).Value = Worksheets("HSBC").Range("Q" & i).Value Then
Worksheets("HSBC").Activate
Worksheets("HSBC").Range("E" & i).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With

End If
i = i + 1

Wend
 
Re : VBA quel est le range de la cellule trouvée ?

Bonsoir kouik kouik jr,

Une colonne peut être appelé de deux manière: par sa lettre par exemple "F" ou son chiffre: 6.
Avec Range on ne peut que utiliser la lettre: Range("F" & i)
Utilise Cells pour exploiter le chiffre d'une colonne dont la syntaxe est Cells(ligne, colonne):
Code:
If Worksheets("HSBC").[SIZE=3][B]Cells(i, celluletrouvee.Column)[/B][/SIZE].Value = Worksheets("HSBC").Range("Q" & i).Value Then

Bonne soirée
 
Re : VBA quel est le range de la cellule trouvée ?

merci bcp skoobi ! ca marche ...

J'en profite pour poser une autre question !

Je sais que la colonne 6 contient le mot "final" en F1 ce qui me donne
colfinale1 = celluletrouvee.Column

Mais je sais aussi qu'une colonne plus loin contient aussi le mot "final" en J1 disons.

Comment puis je faire la même procedure en étant sur qu'il confonde pas les deux "final" (F1 et J1)


merci d'avance
 
Re : VBA quel est le range de la cellule trouvée ?

Re,

que veux-tu dire par là?
Si "final"se trouve dans plusieurs cellules, ce sera toujours la 1ere cellule qui va être renvoyée en utilisant Find.
Regarde dans l'aide pour utiliser d'une manière plus judicieuse Find.
 
Re : VBA quel est le range de la cellule trouvée ?

Ce n'est en fait pas exactement les mêmes "final" car c'est a la suite par exemple "march final" (F1)et ensuite "april final" (J1) ou "june final" puis "july final"

Pour l'instant je trouve rien dans l'aide mais je continue a chercher .-)
 
Re : VBA quel est le range de la cellule trouvée ?

C'est bon j'ai reussi ! (simplissime !!!!)

Merci beaucoup de ton aide

voici ce que j'ai fait (je commence la deuxième recherche depuis le resultat de la première recherche "celluletrouvee1"

'colorier 2ème colonne final

i = 1
While i < Fin


Dim celluletrouvee2 As Range
Dim colfinale2 As Integer



Sheets("HSBC").Select
Set celluletrouvee2 = Range("A1:O1").Find("final", celluletrouvee1, LookAt:=xlPart)

colfinale2 = celluletrouvee2.Column


If Worksheets("HSBC").Cells(i, celluletrouvee2.Column).Value = Worksheets("HSBC").Range("R" & i).Value Then
Worksheets("HSBC").Cells(i, celluletrouvee2.Column).Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 65535
.TintAndShade = 0
.PatternTintAndShade = 0
End With
End If
'End If
i = i + 1

Wend
 
Re : VBA quel est le range de la cellule trouvée ?

Re bonjour,

tant mieux mais il y a une façon plus simple de faire, dixit l'aide:
Find, méthodeCet exemple montre comment rechercher toutes les cellules de la plage A1:A500 dans la feuille de calcul Worksheet 1 contenant la valeur 2 et comment la remplacer par la valeur 5.

With Worksheets(1).Range("a1:a500")
Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Value = 5
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
 
- 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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
497
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
652
Réponses
3
Affichages
585
Réponses
9
Affichages
589
Réponses
7
Affichages
622
Retour