Rechercher à partir d' un Inputbox

br44

XLDnaute Impliqué
Bonsoir le forum ,


Voilà je voudrais savoir si il est possible de lancer une recherche dans un classeur à partir du rèsultat afiicher dans InputBox ?

Je m'explique : j'ai classeur dans lequel je rentre des clients .Je voudrais pouvoire crée une copie de la fiche clients est l'envoyer dans autres classeur qui contient des fiches similaire, mais rèparties sur trois feuilles diffèrantes.

L'endroit où seras collè la copie est à la suite de la "refclient " tapez dans un InputBox .

Je joint un dossier contenant :

1) le classeur nomé "program.Xls" (exemple pour le forum) dans lequel se trouve le dèbut d'une macro à complèter et que j'ai essayè (sans succés) de faire fonctionner .

2) Un classeur nomé "model.Xls" qui contient le model de fiche à copier

3) un classeur nomé "tournée.Xls" qui contient des fiches rèpartie sur 3 feuilles pour exemple et pour les essais de macro de recherche . je voudrais que le collage se face par l'instruction "inserer les cellules copiées" plus un "dècalage vers le bas " .


Pour rèsumer se que je souhaites voici un exemple :

Je rentre un nouveau client qui pour Refclient "C121" quand ton click sur le bouton l'imputBox s'affiche est me demande de "taper une refClient" : qui sera donc "C065" (par exemple)quand je fais ok ,cela lance une macro qui ouvre le classeur "Tournéeé" recherche la fiche qui porte la refclient taper.

Une fois trouver la macro ouvre le classeur model copie la fiche est va l'inserer à la fin de la fiche trouvée .

Pour la fin je pourrais terminée les dernières lignes du program .

Espèrant avoir ètè claire dans ma demande, je vous remercie par avance pour le coup de mains et reste à votre disposition pour toutes questions qui vous serez util . Amicalement BR44
 

Pièces jointes

  • essaisFichier.zip
    23.4 KB · Affichages: 80
  • essaisFichier.zip
    23.4 KB · Affichages: 84
  • essaisFichier.zip
    23.4 KB · Affichages: 80

br44

XLDnaute Impliqué
Re : Rechercher à partir d' un Inputbox

Re: Rebonjour à tous ,


O.K voici le fichier sur le quel je travail tu verras que j'ai mis le program en feuil1 puique les boutons sont sur la feuille 1

Je te joint le classeur conserné par la manipe .

Espèrant qu cela te convient si tu as besoin d'autre chose dis le moi . amicalement BR44
 

Pièces jointes

  • dossier.zip
    28.2 KB · Affichages: 44
  • dossier.zip
    28.2 KB · Affichages: 43
  • dossier.zip
    28.2 KB · Affichages: 45

Pierrot93

XLDnaute Barbatruc
Re : Rechercher à partir d' un Inputbox

Re

ok, modifies le code comme suit :

Code:
For i = 1 To Wb1.Sheets.Count
    Set x = Wb1.Sheets(i).Cells.Find(Mavariable, , xlValues, xlWhole, , , False)
    If Not x Is Nothing Then
        Wb1.Sheets(i).Range(x.Offset(-2, -5), x.Offset(29, 5)).Clear
        MsgBox "La feuille client à ètè suprimer"
    End If
Next i

bonne soirée
@+
 

br44

XLDnaute Impliqué
Re : Rechercher à partir d' un Inputbox

Re: Pierrot93,le forum

Me revoilà après mes testes .

Bonne nouvelle ça marche:p:p:) YOUPI !!!!!!


J'ai juste ètè obligè d'adaper ta formule pour que la feuille suivant celle effacèe remonte à la place .

Pour infos voilà les modifs :

Wb1.Sheets(i).Range(x.Offset(-2, -5), x.Offset(26, 5)).Delete

Oui avec ta version ,cela efface le dèbut de la feuille suivante en ne comblant pas l'espace effacer doù le "Delete" au lieu de "Clear" ,et pour ce qui est le nombre de ligne je suppose que le decompte se fait de la manière suivante :

Il conte 26 ligne à partir de la refClient trouver + les deux lignes situèes au-dessus + la ligne en court se qui donne : 26+2+1=29 lignes le compte est bon:p:p:p

J'aurais juste une dernière petite question : Dans ta macro tu ecris :

For i= 1 To Wb1.Sheets(i).Count au lieu de For i= 1 To 3

Es-ce pour des raisons technique du program où pour le simplifier ?


Sur ce je te dis à bientôt sans ômetre de te remercier vraiment beaucoup pour le coup de main . Très Amicalement Br 44
 

Pierrot93

XLDnaute Barbatruc
Re : Rechercher à partir d' un Inputbox

Re

pour répondre à ta question, j'ai codé :

Code:
For i= 1 To Wb1.Sheets(i).Count

afin de boucler la recherche sur toutes les feuillles du classeur. En l'occurence, il y en a 3, mais si jamais pour une raison x, tu décidais de modifier ton classeur, qu'il y en ait une en moins ou une en plus, tu n'aurais pas à modifier le code, la recherche s'éffecturait sur la totalité des feuilles.

Content de voir que tu t'impliques vraiment dans tes projets, tu cherches à comprendre et avant de reposer une question, tu cherches à adapter par toi même les codes donnés... c'est pas la première fois que je le remarque... continues dans cet esprit, c'est une très bonne façon d'avancer.

A bientôt.
@+
 

br44

XLDnaute Impliqué
Re : Rechercher à partir d' un Inputbox

RE: Bonjour Pierrot93,le forum ,


Je tiens m'excuser du retard mis à rèpondre à ton dernier message pour lequel je te remerçie, mais je suis en pleine addaptation de ta macro .

J'essaye actuelemnt de mettre en place ta macro dans mon program principal et là ça beug .

la macro fonctionne jusqu'au la ligne suivante :

If Not x Is Nothing Then x.Offset(27, -5).Insert xlShiftDown, Wb5.Sheets("F.R.M").Range("1:29").Copy

Oui le program me dèclanche une erreur D'execution :-2147221080(800401a8) Erreur d'automation .

j'en est eu une au dèbut avec la boucle :"For i (remplace par z ,pour cause que le i est dèjà utiliser) = 1 to Wb6.Sheets.coutn par le mon nombre de feuille rèelles de mon classeur c'est-à- dire 3 .

Je me propose de t'envoyer un fichier mais je voudrais savoire si tu veux l'ensemble du program où juste la partie qui consernè par la macro ?

EN m'excusant de te dèranger à nouveau je te dis à plus su se fil . Amicalement BR44
 

Pierrot93

XLDnaute Barbatruc
Re : Rechercher à partir d' un Inputbox

Bonjour br44

le mieux serait un tout petit fichier avec le code "incriminé" mais reproduisant bien le problème... Si tu as remplacé le "for i" par "for z", as tu également bien remplacé le "next i" par "next z"...

bonne journée
@+
 

br44

XLDnaute Impliqué
Re : Rechercher à partir d' un Inputbox

Re:Rebonjour à tous ,

Merçi pour la rapidité de ta réponse .

Tu trouveras ci-joint mon fichier ,j'ai placé ma version de ta macro dans le ThisWorkBook du classeur program.xls

Les différences à noter sont :

Wb1 et Wb3 sont devenus Wb5 et Wb6
les chemins ont également changés comme tu pourras le voire .

A noter que je plasse cette macro dans un USerForm est que la commadeBouton correspond au bouton "Valider" de se dernier .

SI tu as besoin du fichier complet ou d'explications complèmentaires fais le moi savoire .

En te remerciant par avance je te dis à plus . Amicalement Br44
 

Pièces jointes

  • essaisFichier.zip
    34.6 KB · Affichages: 33
  • essaisFichier.zip
    34.6 KB · Affichages: 34
  • essaisFichier.zip
    34.6 KB · Affichages: 34

Pierrot93

XLDnaute Barbatruc
Re : Rechercher à partir d' un Inputbox

Bonjour,

je viens de tester tes macros, et pas de problème avec les fichiers fournis, maintenant si tu as placé le code dans un USF, préférable que tu fournisses le code qui pose problème, USF compris, car là en l'état pas facile de t'aider.

@+
 

br44

XLDnaute Impliqué
Re : Rechercher à partir d' un Inputbox

Re: Bonjour PIERROT93,le forum,

j'accuse récéption de ton dernier message .

Je mets ci-joint un fichier contenant la macro complète de l'userform ,il se dècopose de la manière suivante :

Dans l'Userform:le program de l'userform qui se dèclanche par les touche "CRT+a"

J'ai mis 6 feuilles de classeurs représants les liaisons avec les diffèrants classeurs mensionés dans le program

A noter : je n'est pas modifié la macro par rapport aux feuilles du classeurs .

Espèrant que cela te convienne et te remerciant par avance je te dis à plus sur se fil ,èvidament si tu as besoin d'explications je suis à ta dispositions pour y rèpondre. Amicalement BR 44
 

Pièces jointes

  • program.zip
    30.8 KB · Affichages: 37
  • program.zip
    30.8 KB · Affichages: 38
  • program.zip
    30.8 KB · Affichages: 39

Pierrot93

XLDnaute Barbatruc
Re : Rechercher à partir d' un Inputbox

Bonjour br44

1er problème, lorsque que je remplis, la "textbox" "RefClient", l'événement change se produit et bogue sur "Sheets("Feuil1").", cette feuille n'existant pas dans le fichier joint... remplacer "feuil1" par le nom de la feuille en question, avoir pour la suite... Attention aux noms d'objet.

bon après midi
@+
 

br44

XLDnaute Impliqué
Re : Rechercher à partir d' un Inputbox

Re: Salut à tous ,

Pierrot 93,dèsolè pour les beugs èventuels ,mais comme je le dis dans mon message précédent je n'est pas pris le temps de modifier la macro par rapport au classeur fourni .

Il faut mêtre feuille1 à la place de "C.Xls"
Pour les feuilles 2,3 ,4 Ce sont des classeurs qui contiennent chaqu'uns 12 feuilles et qui corespondent aux douze mois de l'année .


Ce qui donne :

1-Feuille1
2,3,4-Janvier
5-Model est à ramplacé par ("F.R.M")
6-tournées qui à 3 feuilles dont la premère se nome "TournéeCentreVille"

J'ai procèder ainsi pour cause de poids, si j'avais mis tous les classeurs qui corespondent je n'aurais pas put poster le fichier .

Maintenant si tu veux l'ensemble il faut que je passe par un liens internet . pour le beug qui nous conserne il se trouve dans la dernière partie du bouton valider au niveau de la phrase que j'ai poster prècèdemmant et qui est :

If Not x Is Nothing Then x.Offset(27, -5).Insert xlShiftDown, Wb5.Sheets("F.R.M").Range("A1:F29").Copy

Voilà espèrant que mon exlication te conviennent je te dis à plus . Br44
 

br44

XLDnaute Impliqué
Re : Rechercher à partir d' un Inputbox

Re: Pierrot93, le forum

Ci-joint une nouvelle versions du classeur avec le noms des feuilles modifiées

A noter: j'ai mis des mois différents ,car je ne pas pus només 2 feuilles du même noms

espèrant que cela te convienne mieux ,je te dis à plus .Amicalement BR44
 

Pièces jointes

  • program2.zip
    34.8 KB · Affichages: 33

Pierrot93

XLDnaute Barbatruc
Re : Rechercher à partir d' un Inputbox

Re,

dans ton fichier il y a :

Code:
If Not x Is Nothing Then x.Offset(27, -5).Insert xlShiftDown, Wb5.Sheets("F.R.M").[B][COLOR="Red"]Range("1:29").[/COLOR][/B]Copy

pas testé, mais essaye peut être :

Code:
If Not x Is Nothing Then x.Offset(27, -5).Insert xlShiftDown, Wb5.Sheets("F.R.M").Rows("1:29").Copy

@+

Edition : A noter, je ne suis pas sur que tu veuilles insérer tes ou ta cekllule(s), 27 lignes plus bas et 5 colonnes à gauche, vérifies au préalable si c'est possible...
 
Dernière édition:

br44

XLDnaute Impliqué
Re : Rechercher à partir d' un Inputbox

Re: Bonsoir Pierrot 93,le forum

Après ton dernier message j'ai reverifier et comparer avec ta macro d'origine qui elle fonctionne .

le problème semble venire de l'exècution de la copie : le classeur Wb5 ne semble pas s'ouvrire .

Je m'excuse pour la faute de frappe ,il s'agit bien de la formule suivante : .Range("A1:F29") .

Mais cela ne change rien j'ai tester les deux versions .


Une piste peut-être ,le faite que j'ouvre une première fois le classeur Wb5 et que je le referme ne pourrait-il pas agire sur la suite ?

Voilà où j'en suis à l'heure actuelle ,je continue de chercher de mon côter . Si tu vois une solution je suis preneur.:p:p

Je te souhaites une bonne soirée en te remerciant pour ta patience . Amicalement Br44
 

Discussions similaires

  • Résolu(e)
Microsoft 365 Programme VBA
Réponses
3
Affichages
454

Statistiques des forums

Discussions
312 864
Messages
2 093 013
Membres
105 604
dernier inscrit
ugooooooooooo31