Macro VBA insertion ligne sous conditions colonnes [Fermé]

Signaler
Messages postés
3
Date d'inscription
lundi 15 mai 2017
Statut
Membre
Dernière intervention
23 mai 2017
-
Messages postés
371
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
4 mars 2019
-
Bonjour,

Toutes mes excuses si la question a déjà été posée, mais après plusieurs heures passées sur les forums, je n'ai pas réussi à trouver la solution à mon problème.

Alors voilà, dans le fichier Excel joint la feuille "Synthèse" est alimentée par un macro qui copie / colle du texte d'une autre feuille à partir de la cellule C14. Jusque là tout va bien.

J'aurais maintenant besoin d'insérer des lignes vierges entre chaque question (i.e. en fonction de la colonne C si celle-ci est non vide et à partir de la ligne 14 seulement). Dans mon fichier j'ai 10 questions mais je peux en avoir 1 comme 100.

Sauriez-vous m'aider ?

Par avance merci à vous de votre aide,

Cordialement,

Ci-après le lien vers le fichier : https://wetransfer.com/downloads/e0b8a6cf29e2378ee9dd0a271ea63da820170515170215/f1489444fb28d21941d3059acb4436ee20170515170215/a36546

3 réponses

Messages postés
371
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
4 mars 2019
33
Bonjour,

Je ne parviens pas à ouvrir ton fichier donc je te joins un bout de code qui devrait régler ton problème.
Colle ce colle dans visual basic, relie-le a un bouton d'exécution sur la page en question et ça devrait le faire ;-)

Bonne journée

Jc


Sub Ajout_ligne()
Dim i As Integer

'Permet de ne pas voir la macro s'effectuer, elle affiche juste le résultat final
Application.ScreenUpdating = False

'la macro s'effectuera sur la feuille activée de ton fichier excel
With ThisWorkbook.ActiveSheet

'Pour chaque ligne de ton fichier de la ligne 14 à la fin de ton document
For i = .Range("A" & .Rows.Count).End(xlUp).Row To 14 Step -1
'Si la colonne C est non vide
If .Range("C" & i).Value <> "" Then
'On selection la ligne de dessous et on insert un ligne au dessus
.Rows(i + 1).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
End If
Next i
End With

End Sub

Messages postés
3
Date d'inscription
lundi 15 mai 2017
Statut
Membre
Dernière intervention
23 mai 2017

Bonjour,

Merci beaucoup pour ce retour aussi rapide.
J'ai bien inséré le code dans un module mais cela ne fonctionne pas lorsque j'exécute la macro. Est-ce lié au test sur la colonne A ou C ?
Le lien de téléchargement vers le fichier avec la macro est indiqué juste en dessous.

Cordialement,
Messages postés
16233
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
13 octobre 2020
3 047
Pour poster une pièce jointe, il vaut mieux utiliser mon-partage.fr

https://mon-partage.fr/
Messages postés
3
Date d'inscription
lundi 15 mai 2017
Statut
Membre
Dernière intervention
23 mai 2017

Bonjour, Ci-après le lien de téléchargement.

https://mon-partage.fr/f/BCmWlgXY/

Cordialement,
Messages postés
371
Date d'inscription
samedi 28 juillet 2012
Statut
Membre
Dernière intervention
4 mars 2019
33
Bonjour Queen_Margot,

Voici un lien de téléchargement pour le fichier, j'ai ajouter un bouton, il suffit de cliquer dessus pour générer l'ajout des lignes supplémentaire.

https://mon-partage.fr/f/y3RbbpLk/

Bonne journée

Jc