Problème Excel
moutzamout
Messages postés
10
Statut
Membre
-
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
pijaku Messages postés 13513 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour a tous,
J'ai un petit soucis avec excel... Je vais essayer de l'expliquer le plus clairement possible.
J'ai besoin d'informations de deux tableaux excel différents. 3 colonnes d'un tableau et 3 colonnes de l'autre. Pour simplifier les choses, disont que du premier tableau j'ai besoin de colonnes 1, 2 et 3, et du deuxième tableau j'ai besoin de colonnes A, B et C.
Dans mon nouveaux tableau, j'ai donc colonnes 1,2,3,A,B et C a l'affilé. Ce que j'aimerai faire maintenant c'est que j'aimerai trier la colonne 1 en ordre croissant mais que les colonnes 2 et 3 reste en relation avec la colonne 1. Et en plus de ça j'aimerai que les celulles de la colonne A qui correspondent a la colonne 1 soit au même niveau que celle-ci et que les colonnes B et C correspondent a la colonne A.
Dites moi si c'est pas clair, je vous aiderais a comprendre :)
Merci d'avance!
Guillaume
J'ai un petit soucis avec excel... Je vais essayer de l'expliquer le plus clairement possible.
J'ai besoin d'informations de deux tableaux excel différents. 3 colonnes d'un tableau et 3 colonnes de l'autre. Pour simplifier les choses, disont que du premier tableau j'ai besoin de colonnes 1, 2 et 3, et du deuxième tableau j'ai besoin de colonnes A, B et C.
Dans mon nouveaux tableau, j'ai donc colonnes 1,2,3,A,B et C a l'affilé. Ce que j'aimerai faire maintenant c'est que j'aimerai trier la colonne 1 en ordre croissant mais que les colonnes 2 et 3 reste en relation avec la colonne 1. Et en plus de ça j'aimerai que les celulles de la colonne A qui correspondent a la colonne 1 soit au même niveau que celle-ci et que les colonnes B et C correspondent a la colonne A.
Dites moi si c'est pas clair, je vous aiderais a comprendre :)
Merci d'avance!
Guillaume
A voir également:
- Problème Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Excel trier par ordre croissant chiffre - Guide
6 réponses
Bonjour,
Oui pas trop clair ton truc sachant que 1,2,3 sur excel sont des lignes, mais bon bref,
Ce que je ne comprend pas c'est ton tri,
Car quand tu tri une colonne par ordre croissant les autres colonnes suivent le pas (c'est a dire que si tu as 2 en B5 et 7 en C5, avant ton tri, tu retrouvera 2 en B2 et 7 en C2, en ayant trié que sur ta colonne B)
Du coup... je ne vois pas ton problème ....
Et en plus de ça j'aimerai que les celulles de la colonne A qui correspondent a la colonne 1 soit au même niveau que celle-ci et que les colonnes B et C correspondent a la colonne A.
Et là je suis totalement perdu ...
Edit: tu peux déposé ton fichier via cjoint.com et coller le lien ici
"La vie c'est comme une boite de chocolat, on ne sait jamais sur quoi on va tomber"
Oui pas trop clair ton truc sachant que 1,2,3 sur excel sont des lignes, mais bon bref,
Ce que je ne comprend pas c'est ton tri,
Car quand tu tri une colonne par ordre croissant les autres colonnes suivent le pas (c'est a dire que si tu as 2 en B5 et 7 en C5, avant ton tri, tu retrouvera 2 en B2 et 7 en C2, en ayant trié que sur ta colonne B)
Du coup... je ne vois pas ton problème ....
Et en plus de ça j'aimerai que les celulles de la colonne A qui correspondent a la colonne 1 soit au même niveau que celle-ci et que les colonnes B et C correspondent a la colonne A.
Et là je suis totalement perdu ...
Edit: tu peux déposé ton fichier via cjoint.com et coller le lien ici
"La vie c'est comme une boite de chocolat, on ne sait jamais sur quoi on va tomber"
J'avoue ne pas avoir été très clair...
En gros j'ai 6 colonnes qui viennent de 2 tableau différents, colonnes A, B, C, D, E et F. Colonnes A,C et E viennent d'un premier tableau et colonnes B,D et F viennent d'un autre tableau. Colonnes A et B reprennent les mêmes infos: un numéro d'achat. Donc, pour donner un exemple, le numéro en A1 correspond ac une date en C1 et un montant en E1, et le numéro en B1 correspond ac une date en D1 et un montant en F1. Ce que j'aimerai obtenir, c'est un tableau ou la colonne A est triée en ordre croissant, que les colonnes C et E suivent ce tri (donc qu'après le tri, le numéro en A1 corresponde a la date en C1 et le montant en E1), et que les valeurs en B qui correspondent avec les valeurs en A se mettent au même niveau que celles ci (donc que quand la valeur en A1 = 0,6 et que la valeur en B18 = 0,6 celle ci se mettent l'une a coté de l'autre en A1 et B1) et finalement je voudrais que, comme ac les colonnes A,C et E, les colonnes B, D et F restent en relation (donc que le numéro en B1 corresponde tjs a la date en D1 et le montant en F1).
J'espère que c'est plus clair comme ça...
Par contre je ne peux pas déposé mon fichier sur ce site car les informations sont confidentielles... désolé.
Merci pour ton aide en tout cas!
Guillaume
En gros j'ai 6 colonnes qui viennent de 2 tableau différents, colonnes A, B, C, D, E et F. Colonnes A,C et E viennent d'un premier tableau et colonnes B,D et F viennent d'un autre tableau. Colonnes A et B reprennent les mêmes infos: un numéro d'achat. Donc, pour donner un exemple, le numéro en A1 correspond ac une date en C1 et un montant en E1, et le numéro en B1 correspond ac une date en D1 et un montant en F1. Ce que j'aimerai obtenir, c'est un tableau ou la colonne A est triée en ordre croissant, que les colonnes C et E suivent ce tri (donc qu'après le tri, le numéro en A1 corresponde a la date en C1 et le montant en E1), et que les valeurs en B qui correspondent avec les valeurs en A se mettent au même niveau que celles ci (donc que quand la valeur en A1 = 0,6 et que la valeur en B18 = 0,6 celle ci se mettent l'une a coté de l'autre en A1 et B1) et finalement je voudrais que, comme ac les colonnes A,C et E, les colonnes B, D et F restent en relation (donc que le numéro en B1 corresponde tjs a la date en D1 et le montant en F1).
J'espère que c'est plus clair comme ça...
Par contre je ne peux pas déposé mon fichier sur ce site car les informations sont confidentielles... désolé.
Merci pour ton aide en tout cas!
Guillaume
https://www.cjoint.com/?3Bpl0qlh0OB
Voila le tableau, j'ai changé toutes les données par des données test donc pas de soucis.
Encore merci!
Voila le tableau, j'ai changé toutes les données par des données test donc pas de soucis.
Encore merci!
Bonjour,
Excusez l'incruste...
Certaines lignes contiennent en C une valeur et en A rien... Comment tu fais???
Excusez l'incruste...
Certaines lignes contiennent en C une valeur et en A rien... Comment tu fais???
Encore une question :
Certaines cellules en A qui possèdent plusieurs correspondances en B, que fait-on ?
Certaines cellules en A qui possèdent plusieurs correspondances en B, que fait-on ?
Il les faut aussi donc a ce moment la vous pouvez laisser des celulles vides après la celulle A jusqu'à ce qu'il n'y ai plus de correspondance ac les cellules B puis reprendre ac la suite. (p.e. A1=0,6 ; B1=0,6, B2=0,6, B3=0,6 puis poursuivre avec A2=0,7; B4=0,7) Donc il ne faut pas absolument que les cellules A et B soit les mêmes. Merci de ton aide!
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon j'me suis pris la tête pendant 2 heures, je n'arrive pas à la simplifier...
Un résultat approchant de ce que je crois que tu souhaites...
Je sais ça à l'air trash... Mais bon quelqu'un d'autre trouvera surment (certainement même) mieux...
Désolé...
Un résultat approchant de ce que je crois que tu souhaites...
Option Explicit
Sub test()
Dim TabloACE(), TabloBDF(), DrLig As Long, Lign As Long, Col As Integer
Dim IndicC As Integer, IndicL As Long
Dim Valeur As Integer
Dim i As Integer, j As Integer
Dim Cible1 As Variant, Cible2 As Variant, Cible3 As Variant
With Sheets("Sheet4")
'remplir la var TabloACE des données contenues en colonnes A, C & E
IndicC = 3
IndicL = Application.CountA(.Columns(1)) - 1
ReDim TabloACE(1 To IndicC, 1 To IndicL)
IndicC = 1
IndicL = 1
DrLig = .Range("A" & Rows.Count).End(xlUp).Row
For Lign = 2 To DrLig
If .Cells(Lign, 1) <> "" Then
For Col = 1 To 6 Step 2
TabloACE(IndicC, IndicL) = .Cells(Lign, Col)
IndicC = IndicC + 1
Next Col
IndicC = 1
IndicL = IndicL + 1
End If
Next Lign
'trier la variable tableau ACE
Do
Valeur = 0
For i = 1 To UBound(TabloACE, 2) - 1
If TabloACE(1, i) > TabloACE(1, i + 1) Then
Cible1 = TabloACE(1, i)
Cible2 = TabloACE(2, i)
Cible3 = TabloACE(3, i)
TabloACE(1, i) = TabloACE(1, i + 1)
TabloACE(2, i) = TabloACE(2, i + 1)
TabloACE(3, i) = TabloACE(3, i + 1)
TabloACE(1, i + 1) = Cible1
TabloACE(2, i + 1) = Cible2
TabloACE(3, i + 1) = Cible3
Valeur = 1
End If
Next i
Loop While Valeur = 1
'remplir la var TabloBDF des données contenues en colonnes B, D & F
'si on trouve en colonne B une des valeurs de A
IndicL = 1
DrLig = .Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To UBound(TabloACE, 2)
For Lign = 2 To DrLig
If TabloACE(1, i) = .Cells(Lign, 2) Then
If i > 1 Then
If TabloACE(1, i) <> TabloACE(1, i - 1) Then
ReDim Preserve TabloBDF(1 To 3, 1 To IndicL)
TabloBDF(1, IndicL) = .Cells(Lign, 2)
TabloBDF(2, IndicL) = .Cells(Lign, 4)
TabloBDF(3, IndicL) = .Cells(Lign, 6)
IndicL = IndicL + 1
End If
Else
ReDim Preserve TabloBDF(1 To 3, 1 To IndicL)
TabloBDF(1, IndicL) = .Cells(Lign, 2)
TabloBDF(2, IndicL) = .Cells(Lign, 4)
TabloBDF(3, IndicL) = .Cells(Lign, 6)
IndicL = IndicL + 1
End If
End If
Next Lign
Next i
End With
MsgBox IndicL
'restitution des données triées et réparties dans une nouvelle feuille
ThisWorkbook.Worksheets.Add
Lign = 1
With ActiveSheet
.Cells(Lign, 1) = TabloACE(1, 1)
.Cells(Lign, 3) = TabloACE(2, 1)
.Cells(Lign, 5) = TabloACE(3, 1)
For i = 1 To UBound(TabloBDF, 2)
If TabloACE(1, 1) = TabloBDF(1, i) Then
.Cells(Lign, 2) = TabloBDF(1, i)
.Cells(Lign, 4) = TabloBDF(2, i)
.Cells(Lign, 6) = TabloBDF(3, i)
Lign = Lign + 1
End If
Next i
For j = 2 To UBound(TabloACE, 2)
.Cells(Lign, 1) = TabloACE(1, j)
.Cells(Lign, 3) = TabloACE(2, j)
.Cells(Lign, 5) = TabloACE(3, j)
If TabloACE(1, j) <> TabloACE(1, j - 1) Then
For i = 1 To UBound(TabloBDF, 2)
If TabloACE(1, j) = TabloBDF(1, i) Then
.Cells(Lign, 2) = TabloBDF(1, i)
.Cells(Lign, 4) = TabloBDF(2, i)
.Cells(Lign, 6) = TabloBDF(3, i)
Lign = Lign + 1
End If
Next i
End If
Lign = Lign + 1
Next j
DrLig = .Range("B" & Rows.Count).End(xlUp).Row
'suppression des lignes vides
For Lign = 1 To DrLig
If Application.CountA(.Rows(Lign)) = 0 Then
.Rows(Lign).Delete
End If
Next
End With
End Sub
Je sais ça à l'air trash... Mais bon quelqu'un d'autre trouvera surment (certainement même) mieux...
Désolé...
Re-
1- Tu ouvres UNE COPIE DE ton fichier,
2- tape ALT+F11,
3- Insertion/Module
4- copier coller le code placé plus haut.
5- fermer la fenêtre visual basic editor
6- Pour l'utiliser, tu retournes sous ta feuille Sheet4, tape ALT+F8, choisir test et cliquer sur exécuter...
Regarde ton fichier exemple sans les feuilles inutiles...
1- Tu ouvres UNE COPIE DE ton fichier,
2- tape ALT+F11,
3- Insertion/Module
4- copier coller le code placé plus haut.
5- fermer la fenêtre visual basic editor
6- Pour l'utiliser, tu retournes sous ta feuille Sheet4, tape ALT+F8, choisir test et cliquer sur exécuter...
Regarde ton fichier exemple sans les feuilles inutiles...
Bonjour Pijaku,
Tout d'abord merci bcp pour ton aide et le temps que tu as mis a solutionné mon problème! Le résultat est impressionant. Par contre je n'arrive pas a un bon résultat en remplissant ton code dans excel, même si j'ai vu que mon fichier de départ que tu as modifier est exactement ce que je recherche... Peut-être pourrais-tu m'éclairer sur ce qui pourrait être le problème? Merci d'avance,
Guillaume
Tout d'abord merci bcp pour ton aide et le temps que tu as mis a solutionné mon problème! Le résultat est impressionant. Par contre je n'arrive pas a un bon résultat en remplissant ton code dans excel, même si j'ai vu que mon fichier de départ que tu as modifier est exactement ce que je recherche... Peut-être pourrais-tu m'éclairer sur ce qui pourrait être le problème? Merci d'avance,
Guillaume