Recherche valeur Variable

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 !

pmfontaine

XLDnaute Occasionnel
Bonjour,
Je reformule ma question posée le 20/11 qui n’est pas solutionnée.
Dans le script si-dessous, je voudrais rechercher la valeur de la cellule A1 de la feuille 1 dans la feuille 2.
Bien sur la cellule A1 peut varier, Donc il faut que "$ValeurceluleA1" soit une variable. Comment faire ?

Sub recherche()
Sheets("Feuil1").Select
Range("A1").Select
Selection.Copy
Sheets("Feuil2").Select
Cells.Find(What:="$ValeurceluleA1", After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
End Sub

Merci d’avance pour votre aide
 
Re : Recherche valeur Variable

Bonjour,
Par exemple ...
Code:
Sub recherche()
    Sheets("Feuil1").Select
    MyValeur = Range("A1").Value
    Sheets("Feuil2").Select
    On Error Resume Next
    Cells.Find(What:=MyValeur, After:=ActiveCell, LookIn:=xlValues, LookAt:= _
               xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _
               True, SearchFormat:=False).Activate
    On Error GoTo 0
End Sub
 
Re : Recherche valeur Variable

Bonjour RENAUDER,

Merci beaucoup pour ton aide (c'est la deuxième fois aujourd'hui que tu m'aide)

Je viens de tester et il affiche un message d'erreur en surlignant :
SearchFormat:=
Avec :
Erreur de Compilation ==> Argument nommé introuvable.
Voir pièce Joint.
 

Pièces jointes

  • erreur.jpg
    erreur.jpg
    42.9 KB · Affichages: 35
  • erreur.jpg
    erreur.jpg
    42.9 KB · Affichages: 35
  • erreur.jpg
    erreur.jpg
    42.9 KB · Affichages: 35
Re : Recherche valeur Variable

bonjour pmfontaine RENAUDER le forum une autre facon de faire
Option Explicit
Sub ca()
Dim x As Variant, c As Range
On Error Resume Next
x = Sheets(1).[a1]
With ActiveSheet.Range("a1:iv65536")
Set c = .Find(x, LookIn:=xlValues)
c.Select
End With
End Sub
salutations

prevenir s il trouve pas la valeur

Sub ca()
Dim x As Variant, c As Range
x = Sheets(1).[a1]
With ActiveSheet.Range("a1:iv65536")
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then c.Select Else MsgBox x & " pas trouve"
End With
End Sub
 
Dernière édition:
Re : Recherche valeur Variable

Bonjour RENAUDER, Excalibur, et le forum,
Merci à tous les deux pour votre aide. Je choisie la solution :

Sub recherche()
Dim x As Variant, c As Range
x = Sheets("bd").[a1]
Sheets("données1").Select
With ActiveSheet.Range("a1:iv65536")
Set c = .Find(x, LookIn:=xlValues)
If Not c Is Nothing Then c.Select Else MsgBox x & " pas trouve"
End With
End Sub

Qui marche bien.

Une autre question :
Si la valeur chercher se trouve deux fois dans la feuille (données1), je voudrais également un message qui me le signale.
Merci d’avance.
 
Re : Recherche valeur Variable

re bonjour le fil macro pour compter le nombre occuences
Sub Macro1()
Dim C As Range, x As Variant, nb As Integer
x = Sheets(1).[a1]
With Sheets("Feuil2")
For Each C In .Range("A1:iv" & .Range("A65536").End(xlUp).Row)
If C.Value = x Then
nb = nb + 1
End If
Next C
End With
MsgBox nb & " occurences"
End Sub
salutations
 
Re : Recherche valeur Variable

bonsoir pmfontaine RENAUDER le forum j ai modifier ton fichier
c est toujours la valeur de a1 de la feuil bd que tu veus compter les occurences ???? dans toutes les autres feuilles je suis parti dans ce sens .
les feuilles je les nommes par leurs numeros c est plus simple si tu remommes ta feuille tu n as pas a modifier la macro
regarde si cela deja te convient
par contre la macro recherche je vois pas bien ce que tu veus faire explique!!
salutations
ps je m apercois qu il ya une erreur fait a la va vite ... corrige la macro comme cela
Sub ch()
x = Sheets(1).[a1] 'correction1
z = 2
w = 1
For i = 2 To 4
For Each s In Array(1)
With Sheets(z).Cells
Set C = .Find(x, LookIn:=xlValues, LookAt:=xlWhole) 'correction2
If Not C Is Nothing Then
premier = C.Address
Do
nb = nb + 1
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> premier
End If
End With
Next s
MsgBox nb & " " & x & "" & vbCr & "feuille donnees " & w, vbOKOnly, "NB..."
nb = 0
z = z + 1
w = w + 1
Next i
End Sub
 

Pièces jointes

Dernière édition:
Re : Recherche valeur Variable

Bonjour Excalibur et le Forum,
Merci beaucoup pour ton aide, je viens de tester et ça marche comme je souhaite.
Concernant ma Macro recherche :
En réalité je dois générer une base de données a partir de plusieurs fichiers Excel.
C’est fichiers comporte des titres de colonne (champs) mais c’est champs peuvent changer de place dans la feuille. Donc avec sub recherche (), je trouve la position du titre, ensuite je copie les cellules qui sont en dessous et je l’ai colle dans ma base de donnée en dessous du champs correspondant.
Je vais travailler sur le fichier aide pour mettre le copié/collé au point et je le mettrais en ligne quand il sera fini.
Il est possible, voir probable que je face appelle au forum pour atteindre mon objectif.
A bientôt.
 
Re : Recherche valeur Variable

Bonjour à tous,
Pour répondre à la question d'excalibur sur ma macro Rexcherche, voila mon fichier avec un résultat à peu prés correct.
Reste juste a comprendre le comptage des occurrences.
Car quand l'occurrence existe il en compte une de plus,( pour 1 occurrnce il compte deux, pour deux occurence il compte 3.....etc. mais quand il y en a pas il compte bien zéro. ?
J'ai résumé ce problème sur mon fichier.
Merci.
 

Pièces jointes

- 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

Réponses
2
Affichages
588
Réponses
3
Affichages
639
Réponses
12
Affichages
1 K
Retour