Rechercher sur plusieures feuilles

br44

XLDnaute Impliqué
Bonjour le forum ,



Voilà les sousis reviennent suite à de nouvelles infos on me demande de rajouter une fonction sur dans mon program et la je cale !

Oui on me demande de rajouter la possiblitée de rappeler les fiches clients dèja enregistrées pour les complèter . Mon problème c'est quelle se divises sur quatres feuilles différantes .

Ses quatres feuilles se divisent comme cela:
1-de la Ref Client "C001"à"C053"
2-de la Ref Client "C0055" à "C088"
3-de la Ref Client "C089" à "C111"
4 Et les Ref client ("C018","C040"),("C034,"C103"),("C038,"C051"et"C098") qui font l'objet d'un groupage .

je voudrais savoir si il est possible de faire une macro qui permetrait de faire les opèrations suivantes :

1-faire une recherche sur les quatres feuilles par la RefClient pour retouver la fiche?
2- Selectionner la plage allant de B":G" (à complèter par les numèros de lignes où la fiche est placée Ex: si la fiche rechercher est place dans la feuille7 entre la 100 ème et la 129 ligne la plage sera B101:G127 )
3- Copier la plage et la coller dans la plage B5:G27 de la feuille 1
4 Une fois cette plage completée la selectionner est la copier et la coller dans la plage de dèpart (Si on prend l'exemple précédent on colle en B101:G127 en feuille 7 .
5- On efface la zone B5:G29 de la première feuille pour revenir au dèpart .

Toute ces opèration se ferais par l'intermediaire d'un ComandButon nommé "MODIFIER" .


Ci_joint je mets un dossier contentant une aproche shèmatiques des opèrations citèe ci-dessus .

En espèrant que mes explications soient suffisament claire je vous dis merçi d'avence et à bientôt sur se fil .
BR44

3
 

ChTi160

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Salut br44
bonsoir pierrot
bonsoir le fil
a quoi servent les choses en rouge ,,,, à rien je pense
If TrouveRefC Is Nothing Then
Sheets("Détail").Range("1:29").Copy Sheets("T1").Range("A65536").End(xlUp)(L)
With Sheets("Facture").Range("1:50").Copy
End With
With Sheets("T1").Range("A65536").End(xlUp).Offset(1, 0)
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats
End With
Else
'si une modification est en cours
Sheets("Détail").Range("A1:G29").Copy TrouveRefC.Offset(-2, -6)
With Sheets("Facture").Range("A1:G50").Copy
End With
Bonne fin de Soirée
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re: bonjour Pierrot93,Chti 160, le forum

En rèponse à vos messages et dèsolé pour le dèlais .

Pierrot93:

Je te comfirme qu'il sagit bien d'une variable "Range" . Pour infos le program est disponible dans le fichier "FV1.Xls" poster le 21/12/07 sur se post (page2) par SKOOBI si cela peut aider .

Chti160 :

J'ai pas compris pour tu veux supprime les "with" . De plus j'ai vu que tu arrêtais la macro à" copy " peut-tu m'expliquer ta démarche .

Car la fin de la macro me permet de renvoyer les modifications effectuées à l'endroit où elles ont ètè trouvées .

Vous remerciant par avence de votre aide je vous dis à plus et bonne appèti .
Br44
 

ChTi160

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Salut Br44​
Bonjour le Fil

arff j'ai juste mis un extrait de la procèdure ,tu peux je pense supprimer les termes en Rouge
car L'Utilisation du With / End With évite la répétition de ce qu'il y a derriere
exemple
With Sheets("Facture").Range("1:50").Copy
'ici tu n'as rien donc tu peux mettre directement
Sheets("Facture").Range("1:50").Copy
End With
With Sheets("T1").Range("A65536").End(xlUp).Offset(1, 0)
'ici c'est bien car avec le With
devant Sheets("T1").Range("A65536").End(xlUp).Offset(1, 0)
tu evites la répétition de Sheets("T1").Range("A65536").End(xlUp).Offset(1, 0) devant les deux points rouge
.PasteSpecial Paste:=xlValues
.PasteSpecial Paste:=xlFormats​
End With
Bonne fin de journée
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re: rebonjour à tous et à toutes


En rèflèchissant à mon problème j'ai peut-être une solution qui me permetrait de le rèsoudre .

Est-il possible de traduire une formule Excel en formule VBA et si oui commant traduire cette formule? :

=RECHERCHE(G3;'C:\RAPID\GESTION\[C.xls]Feuil1'!$A$2:$A$130;'C:\RAPID\GESTION\[C.xls]Feuil1'!$B$2:$B$130)

J'ai eu cette idée en lisant divers post du forum et voyant un début de macro du style :

Range ("A1"). formula R1C1= (SOMME ect.....) qui permetrait de faire un "TOTAL" .

Si c' ètait possible cela aurait comme avantage de revenir à la macro de base .

Vous remerciant par avences des rèponses que vous me transmetré je vous dis à bientôt sur se post .
BR44
 

skoobi

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Re bonjour tout le monde br44,

pour répondre à ton dernier post, voici la nouvelle macro pour le bouton "TOURNEE 1". En vert, la prise en compte de la formule "RECHERCHE".

Code:
 Private Sub CommandButton2_Click() 'boutton "TOURNEE 1"
'J'enregistre les fiches pour la "T1"
If Range("G3").Value >= "C001" And Range("G3").Value <= "C054" Then
    If Range("G3").Value = "C001" Then
        L = 1
    Else: L = 3
    End If
'si une modification n'est pas en cours
    If trouverefc Is Nothing Then
        Sheets("Détail").Range("1:29").Copy Sheets("T1").Range("A65536").End(xlUp)(L)
        Sheets("Facture").Range("1:50").Copy Sheets("T1").Range("A65536").End(xlUp).Offset(1, 0)
    Else
'si une modification est en cours
        Sheets("Détail").Range("A1:G29").Copy trouverefc.Offset(-2, -6)
        Sheets("Facture").Range("A1:G49").Copy trouverefc.Offset(27, -6)
 [B][COLOR="Green"]       trouverefc.Offset(1, -6).FormulaLocal = _
    "=recherche(" & trouverefc.Address & ";'C:\RAPID\GESTION\[C.xls]Feuil1'!$A$2:$A$130;'C:\RAPID\GESTION\[C.xls]Feuil1'!$B$2:$B$130)"[/COLOR][/B]
    End If
End If
'J'envoie "l'AnnexFacture1"vers la feuille"T1"
If Range("G3").Value = "C054" Then
'si une modification n'est pas en cours
    If trouverefc Is Nothing Then
        Sheets("AnnexFacture1").Range("1:50").Copy Sheets("T1").Range("A65536").End(xlUp).Offset(1, 0)
    Else
'si une modification est en cours
        Sheets("AnnexFacture1").Range("A1:G49").Copy trouverefc.Offset(73, -6)
    End If
End If
End Sub

Bon réveillon à vous tous! :)
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

RE: Bonsoire le forum ,SKOOBI

je te transmets les rèsultats du teste et ça marche ,merçi .


Je me permet ègalements de mêtre ci-joijt un fichier dans lequel tu trouveras

1) La macro que j'ai modifié pour le bouton"GroupageClients"
2) les rèsultats de ce que ça donne
3) Les problèmes que cela engendrent

Si tu peux regarder et me dire où je dois faire les modifs se serais sympas et je t'en remercies par avances .

Si tu as des questions n'hèsites pas à me le faire savoire sur le post .

A Noter: Pour des raisons de poids du fichier je n'est pas mis le program dans le fichiers joints .

Bon Rèveillon à toi et à tout le forum BR44
 

Pièces jointes

  • FV3.zip
    18.4 KB · Affichages: 31

skoobi

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Re br44,

La raison des doublons vient du fait que lors d'une modification du groupageclient, la modification se fait dans la feuille T1 vu que tu fais référence à la variable "trouverefc".
J'ai créé une autre variable "trouverefcgr" pour le groupageclient.
Les problèmes devraient être résolus.

Bonne Année! :)
 

Pièces jointes

  • F v1.3.zip
    50.2 KB · Affichages: 60

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re: Bonjour SKOOBI,le forum ,


Je tient tout d'abord vous envoyer tout mes voeux pour cette nouvelle années .

Merçi SKOOBI pour se nouveaux fichier le temps de le tester et le te tient au courant .

Je me permet de revenir sur ma demande prècèdante que je croyait rèsolue .

Aprés plusieur nouveaux essait le rèsultat m'affiche toujour "NA!" quand la feuille "facture " est renvoyée à sa place .

J'ai essayer d'adapter en rajoutant un .Paste XlValue et .Paste XlFormat comme je l'avait fait dans la partie sans modification afinn d'èviter de copier avec les formules 'EXCEL" où de me dire commant placer t'a formule dirctrement dans la partie "VALIDER" . Si tu à deux minutes pour voire ça se serais super . Merçi par avance et de nouveaux Bonne et Heureuse Année à toi et à tout le forum .
BR44
 

skoobi

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Re,

ajoute ceci à la fin du code du bouton "VALIDER":

Code:
'Sheets("Détail").Range("A4").FormulaLocal = _
'"=recherche(G3;'C:\RAPID\GESTION\[C.xls]Feuil1'!$A$2:$A$130;'C:\RAPID\GESTION\[C.xls]Feuil1'!$B$2:$B$130)"

Voilà :)
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re:Bonsoir le forum ,SKOOBI,

J'ai bien pris note de ton dernier message ,et ja m'excuse du retard mis à te rèpondre .

bon J'ai trouvé l'erreure "Na!" lors de la copie de la fiche une fois modifiée ,elle vennais de la formule Excel située dans la cellule "F7" de la feuille Facture . Je l'ai modifier de la manière suivante :

=RECHERCHE(Détail!$G$3;'C:\RAPID\GESTION\[C.xls]Feuil1'!$A$2:$A$130;'C:\RAPID\GESTION\[C.xls]Feuil1'!$F$2:$F$130)

au lieu de

=RECHERCHE(Détail!G3;'C:\RAPID\GESTION\[C.xls]Feuil1'!$A$2:$A$130;'C:\RAPID\GESTION\[C.xls]Feuil1'!$F$2:$F$130)


Bon maintenant le problème et qu'a chaque nouvelle modifs effectuer l'adresse s'affiche bien pour la bonne fiche, mais cela modifie aussi toutes les autres fiches .


Je voudrais savoir si dans t'as formule qui renvoie les fiches lors de modification il ne serais pas possible de copier simplement les valeures et le format sans les formules ?

Voici la formule à modifier:

Sheets("Facture").Range("A1:G49").Copy TrouveRefC.Offset(27, -6)


En attendant de tes nouvelles et m'excusant de l'erreure au dèpart je te dis à bientôt et merçi d'avance .
BR44
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re: Bonsoir le forum,SKOOBI

En rèponse à ton message je te joint un fichier avec un exemple de fiches avant et aprés modifs .

en espèrant que se soit plus claire pour toi .


Pour rèpondre à ta question : la raison est simple ,la modification et le calcul se font dans les feuilles"Détail"et"Facture" donc se qui va dans la feuille "T1" n'est que le reflet de ses deux feuilles qui ne seront effacées par la suite une fois archivées.
 

Pièces jointes

  • probleme formule Excel.zip
    12.9 KB · Affichages: 34

skoobi

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Re bonsoir br44,

je te propose de copier uniquement l'addresse après la copie de toute la feuille "facture" comme ceci:

pour le bouton "TOURNEE 1":

Code:
'si une modification n'est pas en cours
    If trouverefc Is Nothing Then
        Sheets("Détail").Range("1:29").Copy Sheets("T1").Range("A65536").End(xlUp)(L)
        Sheets("Facture").Range("1:50").Copy Sheets("T1").Range("A65536").End(xlUp).Offset(1, 0)
        [B][COLOR="Green"]Sheets("T1").Range("F65536").End(xlUp).Offset(-5, 0).Value = Sheets("Facture").Range("F7").Value[/COLOR][/B]
    Else
'si une modification est en cours
        Sheets("Détail").Range("A1:G29").Copy trouverefc.Offset(-2, -6)
        Sheets("Facture").Range("A1:G49").Copy trouverefc.Offset(27, -6)
        [B][COLOR="Green"]trouverefc.Offset(33, -1).Value = Sheets("Facture").Range("F7").Value[/COLOR][/B]

pour le bouton "GROUPAGE CLIENTS":

Code:
'Si la refclient n'est pas dans le groupage
    If trouverefcgr Is Nothing Then
         Sheets("Détail").Range("1:29").Copy Sheets("GroupageClients").Range("A65536").End(xlUp)(L)
         Sheets("Facture").Range("1:50").Copy Sheets("GroupageClients").Range("A65536").End(xlUp).Offset(1, 0)
         [B][COLOR="Green"]Sheets("T1").Range("F65536").End(xlUp).Offset(-5, 0).Value = Sheets("Facture").Range("F7").Value[/COLOR][/B]
    Else
'Si la refclient est dans le groupage
        Sheets("Détail").Range("A1:G29").Copy trouverefcgr.Offset(-2, -6)
        Sheets("Facture").Range("A1:G50").Copy trouverefcgr.Offset(27, -6)
        [B][COLOR="Green"]trouverefc.Offset(33, -1).Value = Sheets("Facture").Range("F7").Value[/COLOR][/B]
    End If

Voilà.
 

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87