Comment dédoubler les lignes en fonction de la valeur d'une cellule dans excel?
Fermé
Delphine
-
23 nov. 2018 à 16:01
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 - 31 déc. 2018 à 18:29
titeufdu89 Messages postés 374 Date d'inscription samedi 28 juillet 2012 Statut Membre Dernière intervention 1 avril 2023 - 31 déc. 2018 à 18:29
A voir également:
- Comment dédoubler les lignes en fonction de la valeur d'une cellule dans excel?
- Aller à la ligne dans une cellule excel - Guide
- Fonction si et excel - Guide
- Excel cellule couleur si condition texte - Guide
- Comment calculer la moyenne sur excel - Guide
- Excel trier par ordre alphabétique en gardant les lignes - Guide
5 réponses
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
23 nov. 2018 à 16:18
23 nov. 2018 à 16:18
Bonjour Delphine,
De quelle ligne parles tu dans tu dis :
Si j'ai :
dans la colonne A : auto
dans la colonne E: 3
Si j'ai bien compris tu souhaiterais ajouter autant de lignes (en dessus ou en dessous de ta ligne) que le nombre saisie en colonne E sur ta ligne de référence est-ce bien cela?
A bientot
Jc
De quelle ligne parles tu dans tu dis :
Si j'ai :
dans la colonne A : auto
dans la colonne E: 3
Si j'ai bien compris tu souhaiterais ajouter autant de lignes (en dessus ou en dessous de ta ligne) que le nombre saisie en colonne E sur ta ligne de référence est-ce bien cela?
A bientot
Jc
Petite précision, dans la colonne E, on ne s'arrête pas à 3, ça va jusqu'à 27 ;-)
Ce n'est pas pas ordre croissant.
Merci
Ce n'est pas pas ordre croissant.
Merci
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
27 nov. 2018 à 15:57
27 nov. 2018 à 15:57
Re,
Voici une proposition :
https://www.cjoint.com/c/HKBo4lnuG7M
Bonne fin de journée
Jc
Voici une proposition :
https://www.cjoint.com/c/HKBo4lnuG7M
Bonne fin de journée
Jc
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
28 nov. 2018 à 09:34
28 nov. 2018 à 09:34
Bonjour Delphine,
Nouveau lien :
https://www.cjoint.com/c/HKCiF0dkPxD
A enregistrer avant d'ouvrir et controler que l'extension du fichier est bien .xlsm (sinon le modifier manuellement avant de l'ouvrir). A l'ouverture tu risques d'avoir une alerte de sécurité étant donné que le fichier contient un programme clique sur "activer".
A bientot
Jc
Nouveau lien :
https://www.cjoint.com/c/HKCiF0dkPxD
A enregistrer avant d'ouvrir et controler que l'extension du fichier est bien .xlsm (sinon le modifier manuellement avant de l'ouvrir). A l'ouverture tu risques d'avoir une alerte de sécurité étant donné que le fichier contient un programme clique sur "activer".
A bientot
Jc
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
29 nov. 2018 à 16:46
29 nov. 2018 à 16:46
Alors dans l'idée tu pars de mon fichier pour en copier le code puis tu le colle dans un module de l'interface VBA de ton fichier.
Pour ce faire, tout d'abord, as-tu l'onglet "développeur" affiché dans ton ruban Excel, si tel n'est pas le cas voici la procédure a suivre pour l'afficher :
Cliquez sur l'onglet Fichier.
Cliquez sur Options.
Cliquez sur Personnaliser le ruban.
Sous Personnaliser le ruban et Onglets principaux, activez la case à cocher Développeur.
Ensuite, sur mon fichier :
- "Alt +F11" pour accéder à l'interface VBA
- double clic sur "module 1" pour l'ouvrir
- sélectionnes et copies tout le code qui se trouve dans la fenêtre "module 1"
Dans ton fichier :
- Enregistre-sous ton fichier au format ".xlsm (prenant en charge les macros)"
- "Alt + F11" pour accéder à l'interface VBA
- "Insertion" > "Module" > cliques dans la fenetre qui s'est ouverte puis "ctrl + v" pour coller le code copier plus tôt
Voilà la macro est a présent utilisable dans ton fichier. Pour créer un bouton d'execution de macro sur ta feuille Excel comme dans le fichier exemple que je t'ai envoyé alors :
- onglet "Développeur" > "Insérer" > dans la partie "controle de formulaire" clique sur "bouton (contrôle de formulaire)"
- cliques sur ta feuille Excel à l'endroit ou tu souhaites ajouter ton bouton (de préférence en face des titres car si tu le met en face de ligne qui pourraient potentiellement être supprimées par la macro ton bouton ne sera plus visible)
- dans la fenêtre "affectation de macros" double-clique sur "maj"
Ta macro est paramétré sur ton bouton et s’exécutera à chaque clic, tu peux renommer ton bouton si tu le souhaites avec un clic-droit > "modifier le texte".
Voilà, en espérant qu'avec ces informations tu parviennes à ajouter la macro sur ton fichier sans trop de difficulté
Jc
Pour ce faire, tout d'abord, as-tu l'onglet "développeur" affiché dans ton ruban Excel, si tel n'est pas le cas voici la procédure a suivre pour l'afficher :
Cliquez sur l'onglet Fichier.
Cliquez sur Options.
Cliquez sur Personnaliser le ruban.
Sous Personnaliser le ruban et Onglets principaux, activez la case à cocher Développeur.
Ensuite, sur mon fichier :
- "Alt +F11" pour accéder à l'interface VBA
- double clic sur "module 1" pour l'ouvrir
- sélectionnes et copies tout le code qui se trouve dans la fenêtre "module 1"
Dans ton fichier :
- Enregistre-sous ton fichier au format ".xlsm (prenant en charge les macros)"
- "Alt + F11" pour accéder à l'interface VBA
- "Insertion" > "Module" > cliques dans la fenetre qui s'est ouverte puis "ctrl + v" pour coller le code copier plus tôt
Voilà la macro est a présent utilisable dans ton fichier. Pour créer un bouton d'execution de macro sur ta feuille Excel comme dans le fichier exemple que je t'ai envoyé alors :
- onglet "Développeur" > "Insérer" > dans la partie "controle de formulaire" clique sur "bouton (contrôle de formulaire)"
- cliques sur ta feuille Excel à l'endroit ou tu souhaites ajouter ton bouton (de préférence en face des titres car si tu le met en face de ligne qui pourraient potentiellement être supprimées par la macro ton bouton ne sera plus visible)
- dans la fenêtre "affectation de macros" double-clique sur "maj"
Ta macro est paramétré sur ton bouton et s’exécutera à chaque clic, tu peux renommer ton bouton si tu le souhaites avec un clic-droit > "modifier le texte".
Voilà, en espérant qu'avec ces informations tu parviennes à ajouter la macro sur ton fichier sans trop de difficulté
Jc
Bonsoir Jc,
C'est frustrant, l'explication est très claires et toutes les étapes semblent avoir fonctionné mais le résultat n'est pas là...
De façon aléatoire, il y a une ligne par marque qui s'est créée mais seulement avec le contenu de la colonne A, juste le nom de la marque. La ligne entière n'a pas été dédoublée.
J'espère qu'avec ces info tu pourras comprendre. Je suis désolée de t'ennuyer sachant tout le travail déjà effectué si gentiment.
Bonne soirée,
Delphine
C'est frustrant, l'explication est très claires et toutes les étapes semblent avoir fonctionné mais le résultat n'est pas là...
De façon aléatoire, il y a une ligne par marque qui s'est créée mais seulement avec le contenu de la colonne A, juste le nom de la marque. La ligne entière n'a pas été dédoublée.
J'espère qu'avec ces info tu pourras comprendre. Je suis désolée de t'ennuyer sachant tout le travail déjà effectué si gentiment.
Bonne soirée,
Delphine
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
2 déc. 2018 à 10:32
2 déc. 2018 à 10:32
Bonjour Delphine,
"De façon aléatoire"? C'est à dire? Toutes tes lignes ne sont pas dédoublées le nombre de fois requis en E ? Pour les infos reportées c'est normal, c'est ainsi que j'avais programmé la macro car j'imaginais que tu souhaitais ajouter de nouvelles info sur les autres colonnes vu que tu n'en parlais pas dans ton ennoncé et surtout je voyais pas trop où était ton intérêt d'avoir 27 fois la ligne identique en fait... mais si c'est ce que tu souhaites alors pas de souci ça peut ce modifier assez facilement donc dis moi si tu souhaites copier toutes les colonnes de ta ligne de base ou seulement certaines...
Pour que tu comprenne un peu mieux le fonctionnement de la macro, je l'ai paramétré pour qu'elle analyse chacune des lignes de ton tableau et que lorsque le chiffre en colonne E est supérieure à 1 elle compte le nombre de lignes suivantes ou les valeurs dans la colonne A et est égale à celle de ta ligne de base, puis si le nombre de lignes requis n'est pas atteint elle ajoute celles qui manquent pour arriver au nombre souhaité.
Si ce n'est pas ce que tu souhaitais, ou pas ce qui s'est passé sur ton fichier n'hésite pas à m'en dire un peu plus afin que je puisse modifier ou adapter le code en fonction de tes besoins.
Bonne dimanche,
Jc
"De façon aléatoire"? C'est à dire? Toutes tes lignes ne sont pas dédoublées le nombre de fois requis en E ? Pour les infos reportées c'est normal, c'est ainsi que j'avais programmé la macro car j'imaginais que tu souhaitais ajouter de nouvelles info sur les autres colonnes vu que tu n'en parlais pas dans ton ennoncé et surtout je voyais pas trop où était ton intérêt d'avoir 27 fois la ligne identique en fait... mais si c'est ce que tu souhaites alors pas de souci ça peut ce modifier assez facilement donc dis moi si tu souhaites copier toutes les colonnes de ta ligne de base ou seulement certaines...
Pour que tu comprenne un peu mieux le fonctionnement de la macro, je l'ai paramétré pour qu'elle analyse chacune des lignes de ton tableau et que lorsque le chiffre en colonne E est supérieure à 1 elle compte le nombre de lignes suivantes ou les valeurs dans la colonne A et est égale à celle de ta ligne de base, puis si le nombre de lignes requis n'est pas atteint elle ajoute celles qui manquent pour arriver au nombre souhaité.
Si ce n'est pas ce que tu souhaitais, ou pas ce qui s'est passé sur ton fichier n'hésite pas à m'en dire un peu plus afin que je puisse modifier ou adapter le code en fonction de tes besoins.
Bonne dimanche,
Jc
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
Modifié le 2 déc. 2018 à 11:47
Modifié le 2 déc. 2018 à 11:47
Remplace le code dans le module de ton fichier par celui-ci et fait un autre essai, cette fois ça effectuera une copie de la ligne entière...
Jc
Option Explicit Sub maj() Dim i, j, k, n, der As Long Dim cpte, dif, nbr As Integer Dim nom As String der = Range("A65536").End(xlUp).Row For n = 2 To der For i = 2 To der If Range("E" & i) > 1 Then cpte = 0 nbr = Range("E" & i).Value nom = Range("A" & i).Value Do While Range("A" & i).Offset(cpte, 0) = nom Range("E" & i).Offset(cpte, 0) = Range("E" & i).Value cpte = cpte + 1 Loop i = i + cpte - 1 If cpte < nbr Then dif = nbr - cpte Do While dif > 0 Rows(i + 1).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow Rows(i).Copy Rows(i + 1) Application.CutCopyMode = False i = i + 1 dif = dif - 1 der = der + 1 Loop End If End If Next i Next n End Sub
Jc
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
9 déc. 2018 à 10:14
9 déc. 2018 à 10:14
Bonjour Delphine,
Pas de réponse...?! Est-ce que le dernier code t'a donné satisfaction...?!?!?
Pas de réponse...?! Est-ce que le dernier code t'a donné satisfaction...?!?!?
Bonjour JC,
Je m'étais fendue d'un long message de remerciement en route entre 2 aéroports mais en recevant le vôtre, j'ai compris qu'il n'était jamais parti. Désolée pour le délai et pour la déception. Ce n'est pas faute d'avoir pensé à vous. Je reprends donc mon clavier pour vous remercier pour tout votre travail, pour votre générosité et votre patience. C'est vraiment très gentil à vous. Ca a marché! Je profite de l'occasion du 31 décembre pour vous souhaiter un très bon réveillon et une merveilleuse année 2019!
Encore 1000 mercis!
Je m'étais fendue d'un long message de remerciement en route entre 2 aéroports mais en recevant le vôtre, j'ai compris qu'il n'était jamais parti. Désolée pour le délai et pour la déception. Ce n'est pas faute d'avoir pensé à vous. Je reprends donc mon clavier pour vous remercier pour tout votre travail, pour votre générosité et votre patience. C'est vraiment très gentil à vous. Ca a marché! Je profite de l'occasion du 31 décembre pour vous souhaiter un très bon réveillon et une merveilleuse année 2019!
Encore 1000 mercis!
titeufdu89
Messages postés
374
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
1 avril 2023
38
31 déc. 2018 à 18:29
31 déc. 2018 à 18:29
Bonjour Delphine,
Merci pour ton retour et pour tes vœux! Ravi que ton problème soit résolu. À mon tour je te souhaite un très beau réveillon et tout plein de bonnes choses pour 2019!
Jc
Merci pour ton retour et pour tes vœux! Ravi que ton problème soit résolu. À mon tour je te souhaite un très beau réveillon et tout plein de bonnes choses pour 2019!
Jc
25 nov. 2018 à 23:02
Un grand merci pour ta réactivité.
A part les ligne ou un 1 se trouve dans la colonne E, toutes les lignes vont devoir être dédoublées si c'est un 2 dans la colonne E ou multipliées par 3 si c'est un 3 dans la colonne E.
Ca commence à la ligne 2, la ligne 1 étant une ligne d'en têtes.
Pour répondre à ta question :"Si j'ai bien compris tu souhaiterais ajouter autant de lignes (en dessus ou en dessous de ta ligne) que le nombre saisie en colonne E sur ta ligne de référence est-ce bien cela?".
Je souhaite effectivement ajouter autant de ligne en dessous de ma ligne de référence que le nombre saisie en colonne E de cette même ligne.
Sachant que mon se compose de 484 lignes.
Merci beaucoup pour ton aide!
Delphine
27 nov. 2018 à 11:22
Est-ce qu'avec les nouveaux éléments, vous pensez que mon problème est solutionnable?
Merci
Modifié le 27 nov. 2018 à 13:42
Si un ligne 2 en colonne E j'ai 2
faut-il ajouter 2 lignes (soit en ligne 3 et 4) ou juste 1?
La première ligne est-elle compter dans la somme ou non?
Merci
27 nov. 2018 à 14:00
C'est tellement frustrant d'être handicapée du clavier que je vous suis très reconnaissante.
Il faut que le total de ligne fasse le n° en colonne E.
Si en ligne 2 en colonne E vous avez 2
Il faut ajouter 1 seule ligne, soit la ligne 3 pour arriver au total de 2
La première ligne est bien comptée dans la somme.
Merci!