Recherches multiples onglets, matrices

patpeig

XLDnaute Nouveau
Bonjour le Forum !
Je viens de passer 1 heure à rechercher dans les différents topics mais je ne trouve rien correspondant au Pb qu'on m'a soumis.
Je dois faire une synthèse de plusieurs tableaux, répartis sur plusieurs onglet, et ne renvoyer que les lignes avec des valeurs.
On a un onglet par taille, avec 1 tableau avec n clients et n variétés, et je dois sortir sur la synthèse par client, par taille, les variétés ayant des quantités commandées. voir fichier exemple joint.
J'avoue que je sèche ! si quelqu'un pouvait me donner une piste...
 

Pièces jointes

  • Essai.xls
    45 KB · Affichages: 92
  • Essai.xls
    45 KB · Affichages: 89
  • Essai.xls
    45 KB · Affichages: 92
C

Compte Supprimé 979

Guest
Re : Recherches multiples onglets, matrices

Salut Patpeig

Ci-joint ton fichier avec la fonction magique : SOMMEPROD()

En B1 tu mets toujours le nom de ton client bien orthographié
En C5 ... tu mets : Variete 1 (car dans tes feuilles 40,50,60 c'est noté comme ça)

Et tu trouves ton résultat ;)

A+
 

Pièces jointes

  • PatPeig_Essai.xls
    45 KB · Affichages: 80

patpeig

XLDnaute Nouveau
Re : Recherches multiples onglets, matrices

Merci pour cette réponse rapide, mais en fait il faut prendre le Pb à l'envers. Je saisie le Client et je dois aller chercher s'il y a des valeurs par onglet, et le cas échéant les afficher dans la synthèse.
 

suistrop

XLDnaute Impliqué
Re : Recherches multiples onglets, matrices

Halala les formules tjs plus simple mais je comprend pas comment ca marche bien vu BrunoM45

je poste quand meme mon début de solution
je n ai fais que un tableau tu pourrais faire les autres ou au besoin demander de l aide :)


Code:
Sub cartman()

'ligne et colonne du tableau pour chaque client
l = 1
c = 1

'boucle sur les client
For i = 1 To 12
Cells(l, c) = "client"
Cells(l, c + 1) = "client" & i

'récupéré les valeurs du premier tableau
'on parcour le tableau 40
    Sheets("Synthèse").Select
    Cells(l + 3 + h, c) = "40M"
    For y = 2 To 15
        Sheets("40").Select
        If Cells(y, i + 2) <> 0 Then
        quantite = Cells(y, i + 2)
        variete = Cells(y, 1)
        code = Cells(y, 2)
            Sheets("Synthèse").Select
            'quantité
            Cells(l + 3 + h, c + 1) = quantite
            Total = Total + quantite
            'variété
            Cells(l + 3 + h, c + 2) = variete
            'code chelou
            Cells(l + 3 + h, c + 4) = code
            h = h + 1
        End If
    Next y
'on affiche le total
Sheets("Synthèse").Select
Cells(l + 3 + h + 2, c) = "total"
Cells(l + 3 + h + 2, c + 1) = Total
Total = 0
h = 0
'Second Tableau


'on change de client on va sur un nouveau tableau
c = c + 7
Next i
End Sub

A toi de jouer !!!

Cordialement
 

Pièces jointes

  • Essai_macro_cartman.xls
    48.5 KB · Affichages: 65

jeanpierre

Nous a quitté
Repose en paix
Re : Recherches multiples onglets, matrices

Re suistrop,

Par exemple, en début de macro :
Application.ScreenUpdating = False et en fin :
Application.ScreenUpdating = True
évite à mon écran de nous faire la samba...

Parce que, là, c'est assez hypnotique...

Pour rajouter un petit plus à ta besace....
 

suistrop

XLDnaute Impliqué
Re : Recherches multiples onglets, matrices

Re suistrop,

Par exemple, en début de macro :
Application.ScreenUpdating = False et en fin :
Application.ScreenUpdating = True
évite à mon écran de nous faire la samba...

Parce que, là, c'est assez hypnotique...

Pour rajouter un petit plus à ta besace....

LoL !!!:):)
Moi j aime bien ca me permet de voir si tout se passe bien dans ma macro :D:D

Sinon merci une formule de plus a connaitre !!!(j en connais encore aucune je vais chercher mes anciens post et je fais des copier coller des macro que j ai envoyé mon dieu ma mémoire .... :) )
 

patpeig

XLDnaute Nouveau
Re : Recherches multiples onglets, matrices

Ouah !!! Ca m'impressionne ce genre de macro !
Au risque de paraitre un peu chia... je constate que ça ne fonctionnera pas avec des tableaux à géométrie variable (le nbre de colonnes change), et je ne sais pas comment enchainer cette recherche sur les différents onglets. Pour simplifier, pas besoin de boucle sur les clients, et le total peut être fait manuellement une fois qu'on a la synthèse du client.
Merci !!!
 

suistrop

XLDnaute Impliqué
Re : Recherches multiples onglets, matrices

Ouah !!! Ca m'impressionne ce genre de macro !
Au risque de paraitre un peu chia... je constate que ça ne fonctionnera pas avec des tableaux à géométrie variable (le nbre de colonnes change), et je ne sais pas comment enchainer cette recherche sur les différents onglets. Pour simplifier, pas besoin de boucle sur les clients, et le total peut être fait manuellement une fois qu'on a la synthèse du client.
Merci !!!
LoL je rigole mais c est pas drole !! :rolleyes:

Au vu de ton message malgres que j ai commenté mon programme t as rien compris comment il marchait :(:(

si tu change le nombre de client faut augmenter la premier boucle i = 1 to n

les variété c est la seconde boucle y = 1 to n2

ensuite il te reste quand meme 2 tableaux a traiter jpe pas le faire car apres le fichier va etre trop lourd donc je ne pourrais pas te le poster ( pas mal cette excuse ) :)

Donc enleve les gants met 1 vieux tee-shirt et c est partie dans le cambouie !!!!

Cordialement





PS : si vraiment tu y arrives pas mais que tu as essayer !!!
jveux voir ton travail :D
..... j essairais de faire la suite mais l ecran dansera la samba pdt pas mal de tps pour mon ami jeanpierre !!!
 
Dernière édition:

suistrop

XLDnaute Impliqué
Re : Recherches multiples onglets, matrices

Allez y a quelque truc laid dans la sortie mais ca sort !!!
Code:
Sub cartman()

'ligne et colonne du tableau pour chaque client
l = 1
c = 1

'boucle sur les client
For i = 1 To 16
Cells(l, c) = "client"
Cells(l, c + 1) = "client" & i

'récupéré les valeurs du premier tableau
'on parcour le tableau 40
    Sheets("Synthèse").Select
    Cells(l + 3 + h, c) = "40M"
    For y = 3 To 15
        Sheets("40").Select
        If Cells(y, i + 2) <> 0 Then
        quantite = Cells(y, i + 2)
        variete = Cells(y, 1)
        code = Cells(y, 2)
            Sheets("Synthèse").Select
            'quantité
            Cells(l + 3 + h, c + 1) = quantite
            Total = Total + quantite
            'variété
            Cells(l + 3 + h, c + 2) = variete
            'code chelou
            Cells(l + 3 + h, c + 4) = code
            h = h + 1
        End If
    Next y
'on saute une ligne
h = h + 1
'Second Tableau
    Sheets("Synthèse").Select
    Cells(l + 3 + h, c) = "50M"
    For y = 3 To 18
        Sheets("50").Select
        If Cells(y, i + 2) <> 0 Then
        quantite = Cells(y, i + 2)
        variete = Cells(y, 1)
        code = Cells(y, 2)
            Sheets("Synthèse").Select
            'quantité
            Cells(l + 3 + h, c + 1) = quantite
            Total = Total + quantite
            'variété
            Cells(l + 3 + h, c + 2) = variete
            'code chelou
            Cells(l + 3 + h, c + 4) = code
            h = h + 1
        End If
    Next y
'on saute une ligne
h = h + 1
'Second Tableau
    Sheets("Synthèse").Select
    Cells(l + 3 + h, c) = "60M"
    For y = 3 To 19
        Sheets("60").Select
        If Cells(y, i + 2) <> 0 Then
        quantite = Cells(y, i + 2)
        variete = Cells(y, 1)
        code = Cells(y, 2)
            Sheets("Synthèse").Select
            'quantité
            Cells(l + 3 + h, c + 1) = quantite
            Total = Total + quantite
            'variété
            Cells(l + 3 + h, c + 2) = variete
            'code chelou
            Cells(l + 3 + h, c + 4) = code
            h = h + 1
        End If
    Next y
'on affiche le total
Sheets("Synthèse").Select
Cells(l + 3 + h + 2, c) = "total"
Cells(l + 3 + h + 2, c + 1) = Total
'on change de client on va sur un nouveau tableau
Total = 0
h = 0
c = c + 7
Next i
End Sub
 

Pièces jointes

  • Essai_macro_cartman.zip
    21.8 KB · Affichages: 39

Discussions similaires

Statistiques des forums

Discussions
312 687
Messages
2 090 956
Membres
104 705
dernier inscrit
Mike72