Excel - Création auto d'une nouvelle ligne

FanatiXX Messages postés 5 Statut Membre -  
 Vince -
Bonjour,

Dans un cadre professionnel, je cherche à créer la chose suivante dans une feuille excel, ce qui je présume doit obligatoirement passer par une macro.

Cette macro devrait :

- Aller à la première ligne vide disponible
- Créer une nouvelle ligne en recopiant les formules + la mise en forme de la ligne supérieure (mais pas le reste du contenu).

Merci d'avance à qui pourra m'apporter son aide !

Bonne journée.
A voir également:

5 réponses

FanatiXX Messages postés 5 Statut Membre
 
J'ai oublié de préciser qu'outre les formules et la mise en forme, la nouvelle ligne devra également reprendre les données de validation (menus déroulants).

Merci !
0
Ambroisine78 Messages postés 2 Statut Membre
 
Bonjour,
Je up ce post parce que je cherche à faire la même chose mais personne n'as répondu :'(
Je précise que mon tableau fait plus de 300 lignes d'ou la nécessité d'aller automatiquement à la dernière ligne de celui-ci peu importe l'endroit ou l'on se trouve dans le tableau.

Si quelqu'un pouvait m'aider :)
0
Mike-31 Messages postés 19571 Date d'inscription   Statut Contributeur Dernière intervention   5 138
 
Salut,

Ce code recherche la première cellule vide de la colonne A, insére une ligne, copy les formules de la ligne supérieure, les listes de validation (à tester)

Sub Insére_Ligne_Copy_Formule_MFC()
[A65536].End(xlUp).Offset(1).Select
ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row - 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub
0
Ambroisine78 Messages postés 2 Statut Membre
 
Merci beaucoup Mike-31 !
Ce code fonctionne parfaitement :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vince
 
Bonjour,
Je déterre ce post car il m'a été bien utile étant novice en vba.
Pour un projet excel j'utilise ce code via un bouton pour copier la ligne dernière ligne rempli.

Sub Insére_Ligne_Copy_Formule_MFC()
[B65536].End(xlUp).Offset(1).Select
ActiveCell.EntireRow.Insert
Rows(ActiveCell.Row - 1).Copy Rows(ActiveCell.Row)
On Error Resume Next
Rows(ActiveCell.Row).SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub

Pour la suite je voudrai que lorsque une valeur est sélectionné dans une liste de cette nouvelle ligne, cette ligne soit copié vers une autre feuille. J'ai donc trouvé ceci:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("G7:G65536")) Is Nothing Then
If Target.Value = "Jocelyne" Then
With Sheets("Jocelyne")
LigVide = .Range("A65536").End(xlUp).Row + 1
.Cells(LigVide, 1) = Target.Offset(0, -6).Value
.Cells(LigVide, 2) = Target.Offset(0, -5).Value
.Cells(LigVide, 3) = Target.Offset(0, -4).Value
.Cells(LigVide, 4) = Target.Offset(0, -3).Value
.Cells(LigVide, 5) = Target.Offset(0, -2).Value
.Cells(LigVide, 6) = Target.Offset(0, -1).Value
.Cells(LigVide, 7) = Target.Offset(0, 1).Value
.Cells(LigVide, 8) = Target.Offset(0, 2).Value
End With
End If
End If

Mon probleme est lorsque je clic sur le bouton pour créer une ligne la macro s'arrete et me dit erreur 13 incompatibilité de type sur la ligne de code "If Target.Value = "Jocelyne" Then".

Quelqu'un aurait il une idée pour débuguer tout ça?
0