Macro VBA insertion ligne sous conditions colonnes

Queen_Margot 3 Messages postés lundi 15 mai 2017Date d'inscription 23 mai 2017 Dernière intervention - 15 mai 2017 à 19:00 - Dernière réponse : titeufdu89 67 Messages postés samedi 28 juillet 2012Date d'inscription 25 juillet 2017 Dernière intervention
- 23 mai 2017 à 09:45
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
Afficher la suite 

5 réponses

Répondre au sujet
titeufdu89 67 Messages postés samedi 28 juillet 2012Date d'inscription 25 juillet 2017 Dernière intervention - 20 mai 2017 à 09:47
0
Utile
1
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

Queen_Margot 3 Messages postés lundi 15 mai 2017Date d'inscription 23 mai 2017 Dernière intervention - 23 mai 2017 à 09:02
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,
Commenter la réponse de titeufdu89
michel_m 14944 Messages postés lundi 12 septembre 2005Date d'inscriptionContributeurStatut 20 décembre 2017 Dernière intervention - 20 mai 2017 à 10:10
0
Utile
1
Pour poster une pièce jointe, il vaut mieux utiliser mon-partage.fr

https://mon-partage.fr/
Queen_Margot 3 Messages postés lundi 15 mai 2017Date d'inscription 23 mai 2017 Dernière intervention - 23 mai 2017 à 09:01
Bonjour, Ci-après le lien de téléchargement.

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

Cordialement,
Commenter la réponse de michel_m
titeufdu89 67 Messages postés samedi 28 juillet 2012Date d'inscription 25 juillet 2017 Dernière intervention - 23 mai 2017 à 09:45
0
Utile
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
Commenter la réponse de titeufdu89