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
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re : Bonjour le forum ,Skoobi,


je te remercie de ta dernière proposition ,mais malheuresement elle ne change pas les données du problème .

Je m'explique, ces la dernière addresse copier qui s'affiche sur l'ensemble des autres fiches .

De mon coté j'ai rèflèchie et je crois avoir une solution ,mais il me faudrait un coup de main pour la finaliser.

si je copiais simplement les èlèments modifiés cela me donnerais:

Sheets("Facture").Range("C26:G38").Copy trouverefc.Offset(A traduire)
Sheets("Facture").Range("G39:G44").Copy trouverefc.Offset(A traduire)

Si j'ai compris le principe de ta formule (partir de la 50 lignes vers la 1ère et de la colonne G vers la colonne A ) cela donne :

Pour la première plage : "C26:G38"= (23,-4) : (12,-6)
pour le seconde plage : "G39:G44"= (11,-6) : (6,-6)

Maintenant je me trompe peut-être et dans se cas peux-tu me donner l'explication de ta formule?

Bon je te laisse et te souhaitant un bonne aprés-midi et te disant merçi par avance et a bienôt sur se post .
Br44
 

skoobi

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Re bonjour br44,

Code:
trouverefc.Offset(27, -6)
trouverefc correspond à la référence client cellule G3 dans la feuille T1 pour le client C001 par exemple.
Offset(27, -6): cellule se trouvant 27 lignes plus bas, 6 colonnes à gauche de la référence client.

Donc, pour la plage que tu désires celà donne:

Code:
Sheets("Facture").Range("C26:G38").Copy trouverefc.Offset(52, -4)
Sheets("Facture").Range("G39:G44").Copy trouverefc.Offset(65, 0)

Espérant avoir éclairé ta lanterne :)
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re: rebonjour à tous ,

Bon je revient faire le point . bonne nouvelle cela fonctionne pour les boutons "T1,T2,T3" .

Seul petit soussi qui reste à regler c'est pour le "GroupageClients" qui ne m'affiche pas les fiche pour les modifiées ,j'ai essayer de rajouter au niveau du bouton "Modifier les fiches " mais je n'est pas rèussi .

Si tu peux jetter un coup d'oeil il ne reste plus que ça à résoudre ?

Te remerciant par avance je te dis à bientôt . BR44
 

skoobi

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Re,

arfff, petit oubli de correction lors du copie colle:

Code:
ElseIf Range("G3").Value = "C040" Then
    L = 4
'Si une modification n'est pas en cours
    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)
    Else
'si une modification est en cours
        Sheets("Détail").Range("A1:G29").Copy TrouveRefCgr.Offset(-2, -6)
        Sheets("Facture").Range("C26:G38").Copy TrouveRefC[B][COLOR="Red"]gr[/COLOR][/B].Offset(52, -4)
        Sheets("Facture").Range("G39:G44").Copy TrouveRefC[B][COLOR="Red"]gr[/COLOR][/B].Offset(65, 0)
..........
..........
ElseIf Range("G3").Value = "C103" Then
    L = 4
'Si une modification n'est pas en cours
    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)
    Else
'si une modification est en cours
        Sheets("Détail").Range("A1:G29").Copy TrouveRefCgr.Offset(-2, -6)
        Sheets("Facture").Range("C26:G38").Copy TrouveRefC[B][COLOR="Red"]gr[/COLOR][/B].Offset(52, -4)
        Sheets("Facture").Range("G39:G44").Copy TrouveRefC[B][COLOR="Red"]gr[/COLOR][/B].Offset(65, 0)
    End If
......
.........
   ElseIf Range("G3").Value = "C098" Then
    L = 4
'Si une modification n'est pas en cours
    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)
    Else
'si une modification est en cours
        Sheets("Détail").Range("A1:G29").Copy TrouveRefCgr.Offset(-2, -6)
        Sheets("Facture").Range("C26:G38").Copy TrouveRefC[B][COLOR="Red"]gr[/COLOR][/B].Offset(52, -4)
        Sheets("Facture").Range("G39:G44").Copy TrouveRefC[B][COLOR="Red"]gr[/COLOR][/B].Offset(65, 0)

Voilà.
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

RE: Bonsoir Skoobi,le forum,

Merçi pour l'erreure je ne l'avait pas vu non plus .

Mais je cela ne change rien au problème . je crois que tu omis de dèclarer le "GroupageClients" dans le bouton "Modifier les fiches" car au dèpart tu disait je cite :

L=1 avec un L=3 est maitenant c'est L=1 est L=4

Or il n'y a que les èlèments "T1,T2,T3" .

voici ce qui t'ècrit:
If RefClient.Value >= "C001" And RefClient.Value <= "C054" Then
With Sheets("T1")
....................................................................................................
ElseIf RefClient.Value >= "C055" And RefClient.Value <= "C088" Then
With Sheets("T2").....................................................................................................
ElseIf RefClient.Value >= "C089" And RefClient.Value <= "C111" Then
With Sheets("T3")
.......................................................................................................
End With
With Sheets("GroupageClients")
Set TrouveRefCgr = .Cells.Find(RefClient.Value, LookIn:=xlValues)
End With
End If

et donc j'aurais bien vu un truc du genre :
ElseIf RefClient.Value = "C018" And RefClient.Value <= "C040" ect ..... Then

J'ai fait un essai avec toutes le RefClient conserner mais cela beug il dit qu'il :n'y a pas de ELSE sans If


Je me trompe peut-être dans ce cas là je m'excuse mais je ne vois que ça qui pourrais empecher l'affichage ?


En te remerciant et te disant à bientôt sue ce post .
Br44
 

skoobi

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Re,

je te propose de séparer le traitement des feuilles T1 à T3 de la feuille groupage.
Regarde le code pour le bouton modifier de cette nouvelle version.
Vérifie la condition car si:
T1: client C001 à C054
T2: client C055 à C088
T3: client C089 à C111

et (d'après ce que j'ai compris dans le code du bouton groupage)

groupage 1= C018 à C040
groupage 2= C034 à C103 (regroupe T1 T2 et T3, normal?)
groupage 3= C038 à C098(regroupe T1 T2 et T3, normal?)

Tu regroupes les factures de plusieurs client dans une seule facture?
Le client C038 serait dans les 3 groupes?
:confused:
 

Pièces jointes

  • F v1.5.zip
    40 KB · Affichages: 41

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re: Bonjour le forum,Skoobi,


Je vient de lire ton dernier message . Bon alors pour rèpondre à ta question :

Je regroupe les clients qui ont une addresse de facturation commune .

C'esrt-à-dire plusieurs clients pour une même facture ,donc ton principe de vouloire séparer les boutons "T1,T2,T3," du "GroupageClients" cela ne me dèrange pas mais il serait plus judicieux de le considérer comme si c'ètait un boutton supplèmentaire .

Si je reprend ta base cela donnerais :

Vérifie la condition car si:
T1: client C001 à C054 Sauf les refclients suivantes ("C018,C034,C038,C040 et C051")
T2: client C055 à C088
T3: client C089 à C111 Sauf les refclients suivantes ("C098,C0103")
GroupageClient:
1= C018 et C040
2= C034 et C103
3= C038 et C051 et C098

D'où ta première version qui ètait bonne puisque tu avais dèja supprime les doublons de facture . Il me juste le dèbut de la condition avec ET /OU et la mise en forme .

Cela pourait donner :
If RefClient.Value="C018" And RefClient.Value ="C040" And ou OR RefClient.Value="C034 And RefClient.Value ="C103" And ou OR Then ect...........
With Sheets("GroupageClients")

Set TrouveRefCgr = .Cells.Find(RefClient.Value, LookIn:=xlValues)
If Not TrouveRefCgr Is Nothing Then
.Range(TrouveRefCgr.Offset(2, 0), TrouveRefCgr.Offset24, -5)).(Copy Sheets("Détail").Range("B5")
Sheets("Détail").Range("G3").Value = RefClient.Value
Sheets("Détail").Range("C3").Value = TrouveRefCgr.Offset(0, -4).Value
FactureN°.Value = TrouveRefCgr.Offset(45, -4).Value
Mois.Value = TrouveRefCgr.Offset(0, -4).Value
End If


Voilà j'ai mis en verts les correspondances qui sont peut-être à modifier .

J'èspère que mes explications sont plus claires et que cela t'aideras à rèsoudre notres petit problème .

Bon je te dis à plus sur fil et merçi d'avances . Br44
 

skoobi

XLDnaute Barbatruc
Re : Rechercher sur plusieures feuilles

Re,


si j'ai bien compris, pour faire un exemple:

le client C018 sera récupéré depuis la feuille groupage et non depuis la feuille T1 en cliquant sur le bouton de modification.

Voilà j'ai mis en verts les correspondances qui sont peut-être à modifier
Non c'est bon.

Ci-joint ce que ça donne.

Bon test.
 

Pièces jointes

  • F v1.6.zip
    49.7 KB · Affichages: 47

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re: Bonsoir le forum ,Skoobi,

suite à ton dernier message je fait un petit point rapide .

J'ai une bonne nouvelle ça marche YOUPI !!!!!!


J'ai juste un soussi de dèclage et le total des deux et trois qui ne font pas mais à part ça tout .

Je te prèpare un petit dossier pour les point només ci-dessus .

En te remerçiant vraiment beaucoup je te dis à plus sur ce fil et bonne soirée . Br44
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

re: rebonsoire à tous ,

juste pour signaler que j'ai rèsolu les problèmes cités dans mon message prècèdents .

Je tient à remercier tous ceux qui on participés à ceux post surtout toi SKOOBI qui y a beaucoup participé . J'èspère que se post auras ètè bènèfique à tous ceux qui ont eu besoin .

Je posterai demain un fichier avec les dernières modifs ,se sera ma contribution à la communotée . sur ce je vous quitte et vous dis à bientôt sur le forum .

Merçi beaucoup à tous BR44
 

br44

XLDnaute Impliqué
Re : Rechercher sur plusieures feuilles

Re: Bonjour à toutes et à tous ,


Comme prèvue voici ci-joint la dernière version de mon programe . Il est pour vous en reconnaissance du coup de main . J'ai entendu parler sur ce forum de Barbatruc à vous de voire si s'en est un . Sur ce je vous dis à bientôt et un grand merçi à vous tous . Br44
 

Pièces jointes

  • Copie de F v1[3].zip
    47.6 KB · Affichages: 46

Statistiques des forums

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