Macro "Insérer des lignes "
izenheim
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
izenheim Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
izenheim Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerai effectuer une insertion conditionnée des lignes. En fait, j'ai des noms de famille dans la colonne A. Je veux, qu'à chaque fois que le nom de famille change, une insertion de 3 lignes s'effectuera, avec, la première ligne restera vide, la deuxième comportera le mot "La famille" XX (tel que XX est un renvoi vers la première case contenant le nouveau nom de famille) et la troisième ligne comportera les entêtes figurant en têtes de tableau. J'espère avoir été clair. L'image jointe expliquera mieux mon souci. En vous remerciant de votre collaboration,
Bien à Vous

J'aimerai effectuer une insertion conditionnée des lignes. En fait, j'ai des noms de famille dans la colonne A. Je veux, qu'à chaque fois que le nom de famille change, une insertion de 3 lignes s'effectuera, avec, la première ligne restera vide, la deuxième comportera le mot "La famille" XX (tel que XX est un renvoi vers la première case contenant le nouveau nom de famille) et la troisième ligne comportera les entêtes figurant en têtes de tableau. J'espère avoir été clair. L'image jointe expliquera mieux mon souci. En vous remerciant de votre collaboration,
Bien à Vous

2 réponses
-
Bonsoir
Avec une macro :
ALT + F11 pour ouvrir l'éditeur
Insertion Module
puis copier et coller la macro suivante :
Sub repartir() Application.ScreenUpdating = False x = 5 Dim Ligne As Long Ligne = ActiveSheet.Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row For n = 7 To Ligne If Range("A" & n).Value <> Range("A" & n - 1).Value Then Range("J" & x + 1) = "La famille " & Range("A" & n) Range("J" & x + 2) = "Nom" Range("K" & x + 2) = "Prénom" Range("L" & x + 2) = "Age" Range("M" & x + 2) = "Sexe" x = x + 3 End If Range("J" & x) = Range("A" & n) Range("K" & x) = Range("B" & n) Range("L" & x) = Range("C" & n) Range("M" & x) = Range("D" & n) x = x + 1 Next Application.ScreenUpdating = True End Sub
Fermer l'éditeur
Sur la page Onglet Developpeur Macros et choisir d'exécuter la macro répartir
Ensuite pour les bordures :
selectionner les colonnes J à M
Accueil
Mise en forme conditionnelle
Nouvelle regle
Appliquer une mise en forme aux cellules qui contiennent
choisir Aucune cellules vides et Format de bordures
Recommencer l'opération en choisissant cette fois Texte spécifique puis contenant et entrer famille avant d'enlever toutes bordures dans le Format de bordures
Cdlmnt
-
Merci Bien Via55 pour cette réponse belle et bien expliquée. C'était ma première participation à un forum et c est super de recevoir une réponse aussi claire et assez rapidement. Mille mercis