Imbriquer 2 boucles

Y compris Power BI, Power Query et toute autre question en lien avec Excel
t
tben08
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 1 février 2013
Version d'Excel : 2010 FR

Message par tben08 » 20 janvier 2016, 10:39

Bonjour,

Voici mon problème,

J'ai un fichier avec en colonne des numéros de sociétés (qui peut varier), en lignes j'ai des numéro de compte (qui peut varier aussi) et au milieu les soldes des comptes.

Je souhaite créer une macro qui va créer un nouveau tableau dans un nouvel onglet. ce tableau doit récupérer en boucle le numéro de la société, le numéro de compte et la valeur associée.9a me fait du coup plus de données mais c'est le seul moyen pour le retravailler derrière.
Je vous joins mon fichier avec ma macro qui ne fonctionne qu'à moitié.

Merci d'avance pour votre aide car je suis perdu!!
test2.xlsm
(21.45 Kio) Téléchargé 12 fois
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 3
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 20 janvier 2016, 15:53

Bonjour

A vérifier
tben08 Recopie V001.xlsm
(25.14 Kio) Téléchargé 9 fois
Image
t
tben08
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 1 février 2013
Version d'Excel : 2010 FR

Message par tben08 » 20 janvier 2016, 16:30

ça marche très bien sur le petit fichier mais quand je la mets sur mon gros fichier j'ai des "ref" dans la colonne montant mais que vers la fin.

Est-ce qu'il serait possible d'y dire que lorsque le montant est à 0 je ne veux pas de la ligne?


Merci
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 3
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 20 janvier 2016, 17:01

Bonjour

Fournis un fichier avec cette particularité et indique le résultat que tu souhaites obtenir
Image
t
tben08
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 1 février 2013
Version d'Excel : 2010 FR

Message par tben08 » 20 janvier 2016, 17:11

Sur la feuille 2 ce que je souhaite obtenir.

Encore merci pour ton aide
test3.xlsm
(28.28 Kio) Téléchargé 11 fois
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 3
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 20 janvier 2016, 18:26

Bonjour

A vérifier
tben08 Recopie V002.xlsm
(26.15 Kio) Téléchargé 14 fois
Image
t
tben08
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 1 février 2013
Version d'Excel : 2010 FR

Message par tben08 » 20 janvier 2016, 21:33

Super ça fonctionne!!!

par contre je voudrais que la recopie commence en B2, j'ai réussi à décaler les titres mais pas le reste. je ne maitrise pas encore toutes les expressions.Si tu pouvais me faire ça ce serait top :-)

merci beaucoup
Avatar du membre
Banzai64
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'726
Appréciations reçues : 3
Inscrit le : 21 novembre 2010
Version d'Excel : 2003 FR (learning 2010 - 2013)

Message par Banzai64 » 20 janvier 2016, 21:50

Bonsoir

A vérifier
tben08 Recopie V003.xlsm
(26.25 Kio) Téléchargé 15 fois
Image
t
tben08
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 1 février 2013
Version d'Excel : 2010 FR

Message par tben08 » 20 janvier 2016, 22:06

super merci!!

je mets ici une proposition de macro qu'on m'a fait mais que je ne comprend pas mais terriblement rapide.
Sub For_X_to_Next_Colonne()
Dim TE(), LE&, CE&, TS(), LS&, CS& ' Partout les 1ères lettres
'                   de Taleau, Ligne, Colonne, Entrée, Sortie.
TE = Intersect(Feuil1.[D5:XFD1048576], Feuil1.UsedRange).Value
ReDim TS(1 To UBound(TE, 1) * UBound(TE, 2), 1 To 6)
For CE = 5 To UBound(TE, 2) - 1
   For LE = 3 To UBound(TE, 1) - 1
      If TE(LE, CE) <> 0 Then
         LS = LS + 1
         TS(LS, 1) = TE(1, CE)
         For CS = 2 To 5: TS(LS, CS) = TE(LE, CS - 1): Next CS
         TS(LS, 6) = TE(LE, CE)
         End If: Next LE, CE
Feuil2.Cells.ClearContents
With Feuil2.[B2].Resize(LS, 6)
   .Columns(1).Resize(, 5).NumberFormat = "@"
   .Columns(6).NumberFormat = "0.00"
   .Value = TS
   .Columns.AutoFit
   End With
End Sub
t
tben08
Jeune membre
Jeune membre
Messages : 28
Inscrit le : 1 février 2013
Version d'Excel : 2010 FR

Message par tben08 » 21 janvier 2016, 11:24

Est-ce que tu peux modifier la macro stp?

En fait je souhaite que la macro se lance sur la colonne E (compte FR) et non la D et que la macro débute en B2 sur le feuil3.

J'ai essayé moi même de faire les modifs mais la macro me fait n'importe quoi.

Merci pour ton aide

Je te joins un fichier un peu plus gros et plus réaliste en terme de colonne. Tu verras que la macro ne fonctionne pas très bien car à la fin elle importe des choses qu'elles ne devraient pas.

Je précise que mon nombre de colonne peut varier selon le nombre de société mais il y aura toujours une colonne vide avant le total général.
tben08 Recopie V004.xlsm
(138.48 Kio) Téléchargé 9 fois
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message
  • Imbriquer SI OU ET
    par Bouddha62 » 28 février 2017, 14:32 » dans Calc
    2 Réponses
    403 Vues
    Dernier message par Bouddha62
    28 février 2017, 15:25
  • imbriquer si et ou
    par anaisrp » 28 novembre 2016, 20:58 » dans Excel - VBA
    5 Réponses
    150 Vues
    Dernier message par LouReeD
    28 novembre 2016, 22:23
  • Imbriquer de si
    par BALSE » 14 février 2018, 12:47 » dans Excel - VBA
    5 Réponses
    95 Vues
    Dernier message par BALSE
    14 février 2018, 13:01
  • Imbriquer des SI
    par steven_oz » 1 juillet 2014, 18:37 » dans Excel - VBA
    1 Réponses
    257 Vues
    Dernier message par Amadéus
    1 juillet 2014, 18:57
  • Fonction si imbriquer
    par siga » 22 janvier 2018, 09:44 » dans Excel - VBA
    4 Réponses
    141 Vues
    Dernier message par siga
    22 janvier 2018, 21:23
  • Imbriquer deux formules
    par Thomer » 2 mars 2018, 08:30 » dans Excel - VBA
    12 Réponses
    249 Vues
    Dernier message par Steelson
    19 mars 2018, 11:20