Répartir cellule en plusieurs lignes
Bonjour,
Nouveau sur le forum, j'aurai réellement besoin de votre aide car je sèche complètement ...
Désolé pour ce nom qui est pas forcément très compréhensible mais voici ma problématique, je désirerai éclater une cellule / lignes contenant des mots ou expressions plus ou moins longs séparés par des virgules en plusieurs lignes et également réussir à annoter un numéro d'ID (recette) et une référence (source) de ligne sur chacune de ces lignes nouvellement crées.
Exemple en B2 : Tomate, Cerise, Poivron Vert, Courgette, Haricot Rouge
et en A2 : Recette 1 (ID) et C2 : Marché, Grande Surface (Source)
Je souhaiterai avoir sur une autre feuille et dans l'idéal en ne recourant qu'à des formules :
A2 : Recette 1 / B2 : Tomate / C2 : Marché
A3 : Recette 1 / B3 : Cerise / C3 : Marché
A4 : Recette 1 / B4 : Poivron Vert / C4 : Marché
A5 : Recette 1 / C5 : Courgette / C5 : Marché
A6 : Recette 1 / C6 : Haricot Rouge / C6 : Marché
A7 : Recette 1 / B7 : Tomate / C7 : Grande Surface
A8 : Recette 1 / B8 : Cerise / C8 : Grande Surface
A9 : Recette 1 / B9 : Poivron Vert / C9 : Grande Surface
A10 : Recette 1 / B10 : Courgette / C10 : Grande Surface
A11 : Recette 1 / B11 : Haricot Rouge / C11 : Grande Surface
Vous trouverez ci-après un fichier résumant ma demande qui je le pense serait plus explicite.
Merci par avance pour votre aide,
Quentin
Bonjour,
une solution via une macro
Sub aargh()
Set ws = Sheets("tableau_désiré")
ws.Cells.ClearContents
ws.Range("A1").Resize(, 3) = Split("ID,Ingrédient,Source", ",")
col = 0
lig = 1
With Sheets("data")
dernier_ID = .Cells(Rows.Count, 1).End(xlUp).Row
For ID = 2 To dernier_ID
tableau_produit = Split(.Cells(ID, 2), ",")
tableau_source = Split(.Cells(ID, 3), ",")
For Source = LBound(tableau_source) To UBound(tableau_source)
For produit = LBound(tableau_produit) To UBound(tableau_produit)
lig = lig + 1
ws.Cells(lig, col + 1) = .Cells(ID, 1)
ws.Cells(lig, col + 2) = tableau_produit(produit)
ws.Cells(lig, col + 3) = tableau_source(Source)
Next produit
Next Source
Next ID
End With
End Sub
Bonjour,
Je viens de prendre connaissance de ton fichier c'est top @h2so4.
Il y a un point que j’ai réussi à voir par moi même, cela concerne la rédaction du contenu de la cellule B (ingrédients), faisant appel à une fonction concatener (mais comment gérer les trous dans la liste qui posent un problème lors de la ré-écriture).
Par contre, j’aurai également deux petites questions, est-ce que on pourrait imaginer que le tableau s’agrandissent tout seul sans être obligé d’étirer les cellules. Vois-tu d’ailleurs également une autre solution sans être obligé de passer via une macro, dans l’idéal il faudrait que le fichier puisse s’actualiser sans action humaine.
D’autre part, est-ce que l’on pourrait si je rajoute une autre colonne
J’essai de trouver une solution de mon côté également mais je sèche un peu …
Merci par avance pour ton aide,
Bonne réception,
P.S Ci-joint le fichier à nouveau ou il y a déjà eu quelques autres modifications.
Bonjour,
fichier adapté
ajout automatique de la date
macro adaptée pour gérer les données vides
@h2so4,
C'est top ce que tu as mis en place. J'ai essayé de décortiquer ta macro en plusieurs étapes pour voir comment je pourrai l'adapter si demain je dois par exemple rajouter une autre colonne du type "Ingrédient", "Source" mais je ne comprends pas très bien comment faire.
Cette macro se lance-t-elle automatiquement.
Je voulais partager mon fichier en collaboratif en le mettant sur Google Sheet mais ils viennent de me dire que la macro n'était pas utilisable en tant que tel, il faut qu'elle soit en JS et non pas en VBA.
Connais-tu un moyen pour faire cela ?
Bonne réception,
Quentin.
@h2so4,
C'est top ce que tu as mis en place. J'ai essayé de décortiquer ta macro en plusieurs étapes pour voir comment je pourrai l'adapter si demain je dois par exemple rajouter une autre colonne du type "Ingrédient", "Source" mais je ne comprends pas très bien comment faire.
je peux mettre des commentaires dans le code
Cette macro se lance-t-elle automatiquement.
non, mais je pourrais faire en sorte qu'elle se lance dès qu'il y a un changement dans ID, ingrédient ou source, mais cela rsique d'être lourd si tu as beaucoup de données...
Je voulais partager mon fichier en collaboratif en le mettant sur Google Sheet mais ils viennent de me dire que la macro n'était pas utilisable en tant que tel, il faut qu'elle soit en JS et non pas en VBA.
c'est correct d'après ce que je connais de google sheets
Connais-tu un moyen pour faire cela ?
he bien je suppose qu'il faut connaître le modèle objet de google sheets et se mettre au JS.
Merci, je vais voir comment je peux faire dans ce cas par rapport au Google Drive.
Oui si tu pouvais me faire suivre un macro qui se lance automatiquement et un code commenté se serait topissime.
Encore merci pour ton aide,
Bonne réception