Excel : remplir 2 col à partir d'1
Marc58130
-
mic13710 Messages postés 1165 Date d'inscription Statut Membre Dernière intervention -
mic13710 Messages postés 1165 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voilà, je ne suis pas un expert en Excel... Cependant je suis face à un problème un peu trop complexe à mon sens :
J'ai une colonne où chaque cellule comporte plusieurs données (2 types)
--> TypeA;TypeB;TypeA;TypeB;TypeB...
Chaque type de donnée est séparé par un point virgule.
On différencie le TypeA du TypeB par la première lettre du typeB (R dans mon cas).
Et au final, j'aimerais avoir 2 colonnes : TypeA et TypeB !!!!
Je suis complètement bloqué et j'ai vraiment besoin que quelqu'un m'explique la démarche...
Merci d'avance à vous tous !!!!
Voilà, je ne suis pas un expert en Excel... Cependant je suis face à un problème un peu trop complexe à mon sens :
J'ai une colonne où chaque cellule comporte plusieurs données (2 types)
--> TypeA;TypeB;TypeA;TypeB;TypeB...
Chaque type de donnée est séparé par un point virgule.
On différencie le TypeA du TypeB par la première lettre du typeB (R dans mon cas).
Et au final, j'aimerais avoir 2 colonnes : TypeA et TypeB !!!!
Je suis complètement bloqué et j'ai vraiment besoin que quelqu'un m'explique la démarche...
Merci d'avance à vous tous !!!!
A voir également:
- Excel : remplir 2 col à partir d'1
- 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
Une question :
Vous dites dans chaque cellule vous avez TypeA;TypeB;TypeA;TypeB;TypeB...
Si je comprends bien, vous avez sur la même ligne plusieurs données TypeA et plusieurs données TypeB que vous souhaitez séparer pour les mettre en colonnes, une pour les TypeA et l'autre pour les TypeB
Et vous avez ce type de données sur plusieurs lignes.
Est-ce bien cela ?
Michel
Vous dites dans chaque cellule vous avez TypeA;TypeB;TypeA;TypeB;TypeB...
Si je comprends bien, vous avez sur la même ligne plusieurs données TypeA et plusieurs données TypeB que vous souhaitez séparer pour les mettre en colonnes, une pour les TypeA et l'autre pour les TypeB
Et vous avez ce type de données sur plusieurs lignes.
Est-ce bien cela ?
Michel
Oui c'est exatement ça !!!
Exemple :
TypeA1;TypeA2;TypeB1;TypeA3;TypeB2;
ColonneTypeA -->TypeA1;TypeA2;TypeA3
ColonneTypeB -->TypeB1;TypeB2
Exemple :
TypeA1;TypeA2;TypeB1;TypeA3;TypeB2;
ColonneTypeA -->TypeA1;TypeA2;TypeA3
ColonneTypeB -->TypeB1;TypeB2
Et qu'est ce qui différencie les typeA des typeB ?
Non, ils ne sont pas ordonnées de la même manière.
En fait chaque ligne correspond à un produit et le fichier Excel présente 2 types de données dans la même cellule. Et donc comme ce fichier doit être mis en base de donnée, se serait plus lisible si les données de type A et B soient dans 2 colonnes différentes.
Exemple pour un produit :
Tshirt 1 : S;M;R32;R26;L;XL
Donc les tailles du tshirt ne doivent pas se confondre avec les données commençant par un "R"
En fait chaque ligne correspond à un produit et le fichier Excel présente 2 types de données dans la même cellule. Et donc comme ce fichier doit être mis en base de donnée, se serait plus lisible si les données de type A et B soient dans 2 colonnes différentes.
Exemple pour un produit :
Tshirt 1 : S;M;R32;R26;L;XL
Donc les tailles du tshirt ne doivent pas se confondre avec les données commençant par un "R"
Ca fait 3 critères tout ça !
Produit, TypeA et TypeB
C'est effectivement assez complexe dans la mesure ou il n'y a pas de cohérence dans les données.
Je ne vois guère de solution autre qu'une macro pour extraire les données car pour chaque article il faut insérer le nombre de lignes nécessaires en fonction des données présentes.
Par exemple les produits 1 et 2 ci-dessus, un produit 3 : S;R65;M;R26;R32;L;R44;XL;R45
et un produit4 : S;R36;M
donneraient les résultats suivant :
Produit1 et Produit2 : 4 lignes
Produit3 : 5 lignes à cause des données en R
Produit2 : 2 lignes seulement
Produit, TypeA et TypeB
C'est effectivement assez complexe dans la mesure ou il n'y a pas de cohérence dans les données.
Je ne vois guère de solution autre qu'une macro pour extraire les données car pour chaque article il faut insérer le nombre de lignes nécessaires en fonction des données présentes.
Par exemple les produits 1 et 2 ci-dessus, un produit 3 : S;R65;M;R26;R32;L;R44;XL;R45
et un produit4 : S;R36;M
donneraient les résultats suivant :
Produit1 et Produit2 : 4 lignes
Produit3 : 5 lignes à cause des données en R
Produit2 : 2 lignes seulement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voila un exemple de macro qui devrait résoudre votre problème.
http://www.cijoint.fr/cjlink.php?file=cj201104/cij0E0Bc6i.xls
Je ne doute pas qu'il y ait plus simple, mais bon ça marche.
J'ai considéré que vous aviez vos données sur 2 colonnes, la première avec le nom du produit, la deuxième avec les données.
Une fois votre classement effectué, vous pouvez supprimer la colonne B qui n'est plus utile. J'aurais pu le faire en macro mais comme ça vous pouvez vérifier que toutes vos données ont été traitées avant d'effectuer manuellement la suppression.
A demain,
Michel
http://www.cijoint.fr/cjlink.php?file=cj201104/cij0E0Bc6i.xls
Je ne doute pas qu'il y ait plus simple, mais bon ça marche.
J'ai considéré que vous aviez vos données sur 2 colonnes, la première avec le nom du produit, la deuxième avec les données.
Une fois votre classement effectué, vous pouvez supprimer la colonne B qui n'est plus utile. J'aurais pu le faire en macro mais comme ça vous pouvez vérifier que toutes vos données ont été traitées avant d'effectuer manuellement la suppression.
A demain,
Michel
Bonjour !
Bon je viens de tester et c'est super !
Maintenant, à mon tour de comprendre comment ce script marche car mes données de type A et B doivent être dans la même cellule et non les unes en dessous des autres...
Merci beaucoup pour l'aide !!!!!!
Bon je viens de tester et c'est super !
Maintenant, à mon tour de comprendre comment ce script marche car mes données de type A et B doivent être dans la même cellule et non les unes en dessous des autres...
Merci beaucoup pour l'aide !!!!!!
Ce n'est pas la même chose!
Si vous dites que vous voulez les données en colonnes, l'interprétation décrite dans mon message #10 en fonction des infos tirés au forceps et ce que j'ai traduit en code dans l'exemple que je vous ai envoyé collent à votre demande.
Il aurait fallu dire dès le départ que pour chaque ligne vous vouliez regrouper les données de Type A dans une cellule et les données de Type B dans une autre. Du point de vue code, c'était nettement plus simple.
Voila le code a copier et coller à la place de celui de l'exemple ci-dessus :
Michel
Si vous dites que vous voulez les données en colonnes, l'interprétation décrite dans mon message #10 en fonction des infos tirés au forceps et ce que j'ai traduit en code dans l'exemple que je vous ai envoyé collent à votre demande.
Il aurait fallu dire dès le départ que pour chaque ligne vous vouliez regrouper les données de Type A dans une cellule et les données de Type B dans une autre. Du point de vue code, c'était nettement plus simple.
Voila le code a copier et coller à la place de celui de l'exemple ci-dessus :
Dim Liste As String
Dim Extra As String
Dim Lig As Byte
Dim Lig1 As String
Dim Lig2 As String
Dim Pos As Byte
Sub Sep()
Lig = 1
Lig1 = ""
Lig2 = ""
Liste = "a"
Do Until Len(Liste) = 0
Liste = Cells(Lig, 2)
Pos = 1
Do Until Pos > Len(Liste)
If InStr(Pos, Liste, ";") > 0 Then
Extra = Mid(Liste, Pos, InStr(Pos, Liste, ";") - Pos)
Else
Extra = Mid(Liste, Pos)
End If
If Left(Extra, 1) = "R" Then
If Lig2 = "" Then
Lig2 = Extra
Else
Lig2 = Lig2 & ";" & Extra
End If
Else
If Lig1 = "" Then
Lig1 = Extra
Else
Lig1 = Lig1 & ";" & Extra
End If
End If
Pos = Pos + Len(Extra) + 1
Loop
Cells(Lig, 3) = Lig1
Cells(Lig, 4) = Lig2
Lig = Lig + 1
Lig1 = ""
Lig2 = ""
Loop
End Sub
Michel