Macro VBA insertion ligne sous conditions colonnes

Queen_Margot Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

titeufdu89 Messages postés 374 Date d'inscription   Statut Membre Dernière intervention   38
 
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

0
Queen_Margot Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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,
0