Remplacer cellule trouver avec Find()

  • Initiateur de la discussion Initiateur de la discussion Bolschack
  • 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 !

B

Bolschack

Guest
Bonjour a tous,
Apres de nombreuse recherche, je n'arrive toujours pas a trouver l'adresse de la cellule contenant ma variable et de changer le fond de couleur de la cellule suivant la valeur merci de votre aide si vous avez la solution
 
Re : Remplacer cellule trouver avec Find()

comme ceci..

Range("A1:A10").Select 'zone de recherche
With Selection
Set c = .Find(2, LookIn:=xlValues) 'ici on recherche la valeur 2
If Not c Is Nothing Then firstAddress = c.Address 'on note l'addresse dans la variable firstAddress
End with

Range(firstAddress).Interior.ColorIndex = 50 'on colorie la cellule avec l'indice couleur 50
 
Re : Remplacer cellule trouver avec Find()

Bonjour le fil, bonjour le forum,

En reprenant l'exemple de Vgendron (pouquoi 2 et pourquoi un point devant Find ? J'ai du zapper des étapes...):
Code:
Dim c As Range

Set c = .Find(2, lookin:=xlValues)
If Not c Is Nothing Then firstAddress = c.Address
Ça donnerait
Code:
c.Interior.ColorIndex = 5 'par exemple
 
Re : Remplacer cellule trouver avec Find()

Hello Robert
Pourquoi 2. bah . pourquoi pas? ;-) c'était juste pour l'exemple. il peut rechercher "midi à quatorze heures" s'il le souhaite ;-)
pourquoi le .find: à cause du: with selection
je me suis contenté de copier coller l'exemple de l'aide VBA
 
Re : Remplacer cellule trouver avec Find()

Bonjour le fil, bonnour le forum,

Oui Vgendron tu as raison ! pourquoi pas
2 ? En revanche, pour le point devant le .Find, ton code tel qu'il est va planter à cause de ce point justement... Autant reprendre l'aide VBA en entier non ?
Code:
Dim c As Range 'déclare la variable c (Cellule)
Dim pa As String 'déclare la variable pa (Première Adresse)

With Worksheets(1).Range("a1:a500") 'prend en compte la plage de recherche (à adapter à ton cas)
    Set c = .Find(2, , xlValues, xlWhole) 'définit la recherche (remplacer 2 par ta variable ou la valeur de celle-ci ou l'adresse d'une cellule la contenant)
    If Not c Is Nothing Then 'condition : si il existe au moins une occurence trouvée dans la plage de recherche
        pa = c.Address 'définit l'adresse de la première occurrence trouvé pa
        Do 'exécute
            c.Interior.ColorIndex = 5 'colore l'occurrence trouvée
            Set c = .FindNext(c) 'redéfinit la recherche (occurrence suivante)
        Loop While Not c Is Nothing And c.Address <> pa 'boucle tant qu'il existe des occurrences ailleurs qu'en pa
    End If 'fin de la condition
End With 'fin de la prise en compte de la plage de recherche
 
Re : Remplacer cellule trouver avec Find()

Bonjour le fil, bonjour le forum,

Vgendron, le point fait toujours référence à un With... situé au dessus ! S'il n'y en a pas, ça plante ! Cela permet d'éviter d'écrire dans le code la référence du With.

Exemple :
Code:
Sheets("Feuil1").Range("A1").Value = 1
Sheets("Feuil1").Range("A10").Value = 10
Sheets("Feuil1").Range("A20").Value = 20
Sheets("Feuil1").Range("A30").Value = 30
peut aussi s'écrire
Code:
With Sheets("Feuil1")
     .Range("A10").Value = 10
     .Range("A20").Value = 20
     .Range("A30").Value = 30
End With
Mais si tu écris :
Code:
.Range("A1").Value = 1
sans le With..., là c'est plantage assuré...
 
Re : Remplacer cellule trouver avec Find()

ahhh. ok.. je viens de comprendre ta remarque.. tu faisais référence à mon post #2 où effectivement je n'avais pas tout recopié.. désolé
cela dit, meme avec le with, j'ai parfois quelques ennuis que je suis obligé de contourner en activant la feuille contenant le range. mais ca c'est une autre histoire et ca fera peut etre l'objet d'un autre fil..
en tout cas merci
 
- 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

Réponses
12
Affichages
406
  • Question Question
XL 2021 Macro
Réponses
6
Affichages
309
Réponses
4
Affichages
309
Retour