Remplacer le rechercheV par un code vba

Signaler
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Bonjour a tous,
Petit message perso pour ucfoutu c'est Sharox
je me sis créer un compte comme tu me l'as conseillé
le dossier à été validé donc voila :)
mais malheureusement j'ai une autre question.

Donc je vais vous la poser.

Le contexte : j'ai deux classeur (ChifreElec 2000)
(SCH)
avec une feuille chacun(début)
(RE)

dans le classeur "ChifreElec 2000" il y a des rechercheV qui vont donc chercher dans le classeur "SCH"

et je voudrait enlever les rechercheV pour un simple bouton qui quand j'appuierais dessus renseignerais les cases ou il y avais avant une rechercheV

Donc pour ce qui on pas compris mon explication bancale, je voudrait dans ma feuille "ChifreElec 2000" supprimer toutes les rechercheV
et ajouter un bouton qui remplacerais les rechercheV

voila je suis totalement perdu donc ^^
je m'en remet a vous et votre savoir.

Merci !!
Bonne journée

12 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
C'est bien entendu possible.
Le choix de la méthode la plus adéquate dépend toutefois de ce que tu cherches à faire très exactement.
Peux-tu l'exposer avec précision ?
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

tout a fait, je peux l'exposer avec précision.

dans mon classeur "ChifreElec 2000",il y a une feuille "début"
dans cette feuille il y a une liste :
colonne A . colonne B .
azer . 789
qsdf . 765
zert . 767
sfdg . 55464
GV78E06 . 456
GV45E07 . 456
GV12E07 . 4561
GV23E08 . 231
GV56E08 . 231
GV89E08 . 752
GV96E10 . 75
GV96E11 . 452
GV2ME14 . 25
GV2ME14 . 25
GV26P16 . 56
GV23P20 . 254
GV24P21 . 452
GV21P22 . 78
GV22P32 . 56
GV38P40 . 545
GV37P50 . 445
GV34P65 . 4564
GV3ME80 . 53
GV785100 . 453
GV723150 . 453
GV778150 . 123


et dans le deuxième classeur "SCH" dans la feuille "RE"
il y a
colonne A
GV78E06
GV2ME14
GV3ME80
GV96E11
dans la colonne B je voudrait afficher les chiffres
mais attention, la recherche ne se fait pas dans l'ordre
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Il est alors important de préciser si, tant dans la colonne A de l'un, que dans la colonne A de l'autre, tu peux ou non avoir des doublons.
Précise ce point très important, s'il te plait.
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

franchement je sais pas ce que c'est qu'un "doublon"
je pense savoir ce que c'est

mais oui on peut utiliser des doublons, il faudrait juste me dire pourquoi on pourrais pas les utiliser ??
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
un "doublon" veut dire que, dans la même colonne A, existent plus d'une donnée ayant la même valeur !
Est-ce le cas ?
Tu as par exemple un doublon en colonne si, dans CETTE colonne, tu retrouves deux (ou plus) fois "toto"
Et ton problème se compliquerait alors (car comment déterminer quelle valeur de l'autre colonne correspond à "toto", hein ?).
Pire encore si, sur l'autre feuille, tu as également des "doublons" (ce qui dénoterait une énorme carence de conception).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

ha dans la colonne A il n'y a aucune référence qui a la même valeur
dans la colonne B c'est des prix donc il y a des possibilités qu'il y ai les même valeurs ( mais je n'en suis pas sûr, il y a plus de 60 000 lignes donc c'est un peu long)

j'ai fait le test normalement il n'y a pas de doublon
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Je ne te parle, moi, que de la colonne A de chacune des deux feuilles !
Peu importe ce qu'il y a en B !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

ha oui dans la colonne A il n'y a pas de doublon

je sais pas si ca peut fausser le truc mais il y a genre
3D0542
3D054
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
3D0542 n'étant pas 3D054, aucun souci.
Il va alors te falloir utiliser la méthode Find (Range.find). Ouvre ton aide VBA sur ce mot et lis ...
Reviens avec ton code d'essai sur cette base si encore en difficulté.

Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

franchement je sais pas par quoi commencer, enfin disons que je sais comment l'exprimer mais pas en VBA entièrement


quand j'appuie sur le bouton
Sub CommandeButton1_Click()

pour m de L4 à L29
for m=L4 to L29

je rentre dans le classeur données
"inconnu"

je rentre dans la feuille
"inconnu"

Pour i de B2 à B51266
for i=B2 to B51266

cherche B"i"
find Bi

copie H"i"
Selection.Copy

revient dans mon classeur et colle en E1
workbooks("").Activate...Selection.Past

et ainsi de suite.. jusqu'à L29
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Relis-moi :
"Il va alors te falloir utiliser la méthode Find (Range.find). Ouvre ton aide VBA sur ce mot et lis ..."
Je ne vois pas, dans ton code, cette utilisation. As-tu au moins lu la rubrique que je t'invitais à lire ?
Commence s'il te plait par cette lecture (assortie d'un exemple dans ton aide VBA) !
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

oui je l'ai lu !!
mais je ne comprend pas
le truc c'est que tant que c'est pas dans le même contexte que moi je ne comprend pas

après je pense que c'est ca ressemble a quelque chose comme ca:

For Each i In [B2:B51266]
If i.Font.Name Like "azer*" Then
i.Font.Name = "Times New Roman"
End If
Next
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Il ne s'agit pas d'être "dans le même contexte", mais de savoir lire, comprendre, etc ...
Commence par des petits tests ! Ils devraient t'ouvrir les yeux ...
Je te propose celui ci :
Dans la colonne A d'une feuille, tu écris 1 an A1, 2 en A2, 5 en A3, 6 en A4
Lance maintenant ce code :
Set toto = worksheets("Feuil1").Range("A1:A6").Find(5, LookIn:=xlValues)
If Not toto Is Nothing Then MsgBox "trouvé en ligne " & toto.Row

Ici, on a trouvé la valeur 5
on aurait pu utiliser une variable n
avec n = 6 ===>>
Set toto = worksheets("Feuil1").Range("A1:A6").Find(n, LookIn:=xlValues)
If Not toto Is Nothing Then MsgBox "trouvé en ligne " & toto.Row


Et que serait pour toi, la variable n ? ===>> tout simplement la valeur à chercher, qui est celle de la case de ton autre feuille (où tu cherches en boucle en colonne A) . Vraiment pas sorcier.
Commence ainsi, pas à pas et tu devrais obtenir ainsi un merssage pour chacune des valeurs cherchées en boucle.
Je te LAISSE faire ce tout petit test d'apprentissage nécessaire, hein ...
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

d'accord merci
et oui désoler de ne pas être super patient
mais bon j'ai mon patron sur le dos, j'ai commencer VBA il y a a même pas une semaine et je dois rendre un truc complet jeudi prochain...

c'est un peu galère.
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

voila j'ai fait le petit exercice que tu viens de me donner
merci beaucoup de m'aider (je te le dit franchement ca m'a rien ouvert du tout ;( ...)

j'ai compris ce que tu m'as donné mais je suis bloqué, je ne vois pas ce que je dois faire pour aller plus loin
Messages postés
11
Date d'inscription
jeudi 24 octobre 2013
Statut
Membre
Dernière intervention
24 octobre 2013

dit moi pour faire une boucle For
j'ai écrit :

For n = 1 to 10
cells (n,1).copy

etc... est-ce que ca commence bien ??
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Que vient faire ici le Copy ?
Tu n'as rien à copier.
Tu as :
- à relever le contenu, qui est cells(n,1).value (ou, comme tu veux, Range("A"& n).value
- à rechercher si ce contenu est présent sur ton autre feuille (c'est ce que je t'ai montré avec le petit exercice que je t'ai fait faire) !
- tu connais alors son rang (appelons-le r)
- tu peux alors extraire ce qu'il y a en ce rang, dans la colonne B worksheets("....").range("B" & r).value (appelons-le valeur)
- reporter cette valeur en colonne B de la feuille à compléter worksheets("...").range("B" & n).value = valeur
Là, tu m'inquiètes vraiment car ce sont les balbutiements/bases de départ !
Tu ne pourras aller bien loin ainsi et ton travail ne saurait être limité à du copier/coller de ce que l'on écrirait à ta place).