Macro Ajout d'une ligne

Bonjour,

Voir le fichier joint :

J'ai plusieurs tableaux sur une feuille.

J'aimerai ajouter un bouton qui permette de rajouter une ligne avec la même mise en forme conditionnelle, et la meme liste de choix dans la dernière colonne, en fin de tableau

Et un bouton pour chaque tableau.

Merci !!

Marc

mail

Bonjour,

Pas besoin d'un bouton pour chaque tableau.

Utilise ce code associé à un bouton

Sub test()
'MAcro Dan pour msrt le 01/06/2010
Dim lg As Integer
lg = ActiveCell.Row
Range("B" & lg).EntireRow.Insert
Range("B" & lg - 1 & ":H" & lg - 1).Copy
Range("B" & lg).PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False
End Sub

Sélectionne une cellule dans ton tableau où tu veux ajouter un ligne puis clique sur le bouton en question.

Amicalement

Bonjour,

Merci ca marche.

Mais pour une question de praticiter (ne pas devoir expliquer a l'utilisateur que 1. il doit se postionner sur telle cellule, 2. cliquer sur le bouton), est-ce possible d'affecter la macro à une cellule ?

Par exemple, on note dans la cellule : cliquez ici, et en cliquant, cela rajoute la ligne au dessus.

Merci,

Marc

Re,

est-ce possible d'affecter la macro à une cellule ?

Oui c'est possible mais quelle est cette cellule car tu as pas mal de tableau dans ta feuille ?

Ce que tu peux faire c'est mettre un texte dans les cellules où tu souhaites pouvoir ajouter une ligne et le code récupère cette info pour autoriser l'ajout de la nouvelle ligne.

Exemple : on pourrait prendre le mot "Cible" tel que je le vois dans l'image de ta feuille que tu as postée avant. Si le mot "cible" est lu, on ajoute une ligne dans la tableau à l'endroit de ton choix.

A te relire

En fait je voudrai , en bas de chaque tableau sur la meme feuille, une cellule qui permette de rajouter une ligne sur le tableau en question, tout simplement (ou pas...) !

re,

J'ai bien compris mais quel est le critère de ta cellule. Là le code doit le comprendre. Il faut que tu me donnes une règle identique pour chaque tableau.

Exemple dans ton image, cela pourrait être la cellule B15 et B25

Attention aussi qu'il me semble que tu as des cellules fusionnées ! à éviter pour le code.

A toi de me dire

Oui, voila, ce sont les cellules B15 et B25, et j'aurai d'autres tableau en dessous avec la même règle.

Pour les cellules fussionnées apparament j'ai testé avec ton code ca ne pose pas de pb, sinon jeles défusionnerai.

Merci !

re,

Ok. Fais ceci :

  • En B15 et B25, ajoute le mot --> "ajouter"
  • Remplace le code que je t'ai donné par celui ci-après
Sub test()
'MAcro Dan pour msrt le 02/06/2010
Dim lg As Integer
If UCase(ActiveCell) = "AJOUTER" Then
lg = ActiveCell.Row - 1
Range("B" & lg).EntireRow.Insert
Range("B" & lg - 1 & ":H" & lg - 1).Copy
Range("B" & lg).PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False
End If
End Sub
  • Sélectionne la cellule B15 ou B25
  • exécute la macro avec ton bouton

A noter que l'on pourrait aussi se passer du bouton en utilisant le double clique dans la cellule ou le clique droite. Mais là le code devrait être refait.

Amicalement

Aïe je suis pas sur que l'on se soit compris

Dernier essaie :

Dans ma cellule, en B15 ou B25, je note : "cliquer ici pour rajouter une ligne"

Du coup, quand l'utilisateur clique sur cette cellule, une ligne s'insère au-dessus avec le même format que la ligne précédente...

Re-re-re Merci

-- 02 Juin 2010, 13:35 --

Aïe je suis pas sur que l'on se soit compris

Dernier essaie :

Dans ma cellule, en B15 ou B25, je note : "cliquer ici pour rajouter une ligne"

Du coup, quand l'utilisateur clique sur cette cellule, une ligne s'insère au-dessus avec le même format que la ligne précédente...

Re-re-re Merci

-- 02 Juin 2010, 13:45 --

en fait la meme macro que celle que tu viens de me donner, mais sans avoir a cliquer sur un bouton, en cliquant directement sur la cellule, qui sera deja rempli d'une phrase

re,

Si on s'est bien compris...

A la place du mot "AJOUTER" dans le code tu mets dans le code le texte de ta cellule en majuscule --> "CLIQUER ICI POUR RAJOUTER UNE LIGNE"

Amicalement

Oui mais je dois toujours cliquer sur le bouton ?!

Je peux pas activer la macro en cliquant juste sur la cellule ?

-- 02 Juin 2010, 14:15 --

En fait je ne veux pas cliquer sur le bouton, il n'y en aura plus, je veux juste exécuter la macro en cliquant directement sur la cellule !

Re,

Suis mes indications ci-après

  • Supprimer le code que je t'ai donné ainsi que ton bouton
  • Clique droite sur l'onglet comportant tes tableaux puis choisis l'option "visualiser le code"
  • Colle le code ci-dessous
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'MAcro Dan pour msrt le 02/06/2010
Dim lg As Integer
If UCase(Target) = "CLIQUER ICI POUR RAJOUTER UNE LIGNE" Then
lg = Target.Row - 1
Range("B" & lg).EntireRow.Insert
Range("B" & lg - 1 & ":H" & lg - 1).Copy
Range("B" & lg).PasteSpecial Paste:=xlFormats
Application.CutCopyMode = False
End If
Cancel = False
End Sub

Veille bien à ce que la phrase "Cliquer ici...." soit bien strictement la même dans chaque cellule. Pas d'espace de trop ou trop peu. Le cas échéant le code ne fonctionnera pas.

N'oublie pas de cloturer ton fil si ok.

Amicalement

PAR-FAIT !

Merci bcp.

Je clo le fil.

Rechercher des sujets similaires à "macro ajout ligne"