démultiplication de données...je m'explique ;o)

nono60

XLDnaute Nouveau
Bonjour à tout le monde qui lis ce message :)

Voilà j'ai un projet mais je n'arrive pas à m'en sortir sous excel, je suis débutant et je ne connais pas du tout VBA.

J'ai créé un fichier xls (joint à ce post) afin d'argumenter mes explications :eek:
Les données ont été prises au hasard, ce n'est qu'un exemple car mon projet et plus compliqué et il y a plus de données.

Explications:

J'ai une feuille 1 avec les données 1 et une autre avec les données 2, je souhaite faire une feuille 3 en résultat avec une synthèse des feuilles 1 et 2. Je veux retrouver sur cette feuilles tous les données disponibles des deux autres. Je précise que dans mon projet, j'ai beaucoup plus de colonnes et de lignes.

Je ne suis pas contre une solution en VBA mais il faudra que l'on m'explique étape par étape.

MERCI à ceux qui voudront bien se pencher sur ce sujet :)

Bonne soirée

Nono
 

Pièces jointes

  • demultiplication données.xls
    15.5 KB · Affichages: 55
  • demultiplication données.xls
    15.5 KB · Affichages: 59
  • demultiplication données.xls
    15.5 KB · Affichages: 56

yojema

XLDnaute Occasionnel
Re : démultiplication de données...je m'explique ;o)

Bonsoir

J ai commencer par revoir la construction de ta feuille "données 1"

comme suit Regarde la pièce jointe demultiplication données.xls

pour la suite je verrai plus tard mais deja la ca te permettra de voir

ou d apres moi ca va te poser un probleme par la suite si tu remplit ta feuille

comme tu l avais fait ce

je suivrai ca un peut plus tard si tu veut bien

a+:)
 

Pièces jointes

  • demultiplication données.xls
    16 KB · Affichages: 54
  • demultiplication données.xls
    16 KB · Affichages: 55

nono60

XLDnaute Nouveau
Re : démultiplication de données...je m'explique ;o)

Bonjour Yojema,

Merci de te pencher sur mon problème mais la mise en forme que tu as fait est necessaire mais je voudrais la faire par une formule xls car ce j'ai plus de 4000 lignes dans ce cas et je me vois pas le faire à la main :)
Peux tu me donner une solution pour une mise ne forme automatique avant de continuer ?
Merci beaucoup de votre aide ;)

nono
 

nono60

XLDnaute Nouveau
Re : démultiplication de données...je m'explique ;o)

MERCI Hervé pour ta précieuse aide.
Masi je ne connais pas du tout VBA, peut tu m'expliquer ta macro car je dois la retranscrire dans mon projet. Le fichier xls que j'avais joint est un petit exemple, sinon j'ai plus de 6000 lignes :D

On peut éviter VBA ?

encore Merci
 

Hervé

XLDnaute Barbatruc
Re : démultiplication de données...je m'explique ;o)

re

je ne sais pas si c'est possible par formule, je suis nul dans ce domaine.

je te fournis un code avec quelques commentaires :
Code:
Sub Bouton1_QuandClic()
Dim c As Range
Dim tablo(), tablod2, tablosplit
Dim x As Integer, j As Integer, i As Integer

'stock les données de la feuille DONNEES 2
tablod2 = Sheets("DONNEES 2").Range("a1").CurrentRegion

With Sheets("DONNEES 1") 'a partir de la feuille DONNEES 1
    'pour chaque cellule de la ligne A2 jusqu'a la derniere ligne non vide de la colonne A
    For Each c In .Range("a2:a" & .Range("a65536").End(xlUp).Row)
        'deconcatene la valeur de la colonne B (c.offset(0,1))
        tablosplit = Split(c.Offset(0, 1), Chr(10))
        'pour chaque élément de la deconcaténation
        For i = 0 To UBound(tablosplit)
            x = x + 1
            ReDim Preserve tablo(1 To 5, 1 To x)
            'stock les données
            tablo(1, x) = c 'le prénom
            tablo(2, x) = tablosplit(i) 'l'élément de la déconcaténation
            tablo(3, x) = c.Offset(0, 2) 'la marque (colonne C)
            For j = 1 To UBound(tablod2) 'pour chaque ligne de la feuille données
                If tablo(3, x) = tablod2(j, 1) Then 'si les marques de la voiture sont identiques
                    tablo(4, x) = tablod2(j, 2) 'on complete le tableau avec la donnée 2 (le type de voiture)
                    tablo(5, x) = tablod2(j, 3) 'et le type d'energie
                    Exit For
                End If
            Next j
        Next i
    Next c
End With

Sheets("feuil1").Cells.ClearContents 'on efface les données de feuil1

'on renvoi le tableau en feuil1
For i = 1 To UBound(tablo, 2)
    For j = 1 To UBound(tablo, 1)
        Sheets("feuil1").Cells(i, j) = tablo(j, i)
    Next j
Next i

End Sub
pour acceder à la macro, lorsque tu es sur la feuil1 fait ALT+F11.

il est toujours préférable de fournir une pièce jointe collant le plus à la réalité, ainsi, les codes vba s'adaptent mieux.

si tu rencontres encore des soucis, fournis nous une piece jointe plus étoffée, 10 lignes suffisent, par contre la disposition des colonnes est tres importante.

salut
 

Discussions similaires

Statistiques des forums

Discussions
312 546
Messages
2 089 489
Membres
104 185
dernier inscrit
Daniel RONNA