création de lignes sur différents onglets + recopie de 2ème ligne de chaque onglet

jeanlouispaf

XLDnaute Nouveau
Bonjour,

Dans mon classeur, j'ai trois onglets.
Je souhaite qu'en cliquant sur le bouton "Nouveau candidat" :
- une macro me crée une ligne en-dessous de la dernière trouvée dans chaque onglet.
- cette macro recopie sur chaque onglet la 2ème ligne de chaque onglet qui est un modèle avec une formule.
J'ai créé trois macros différentes (une pour chaque onglet) qui s’exécutent automatiquement en cliquant sur "nouveau candidat".
Malheureusement les formules ne se recopient pas.
Merci pour votre aide

Voici le code :

Sub nouvelleligne1()
Dim DLig As Long ' Dernière ligne
' Avec la feuille stagiaire
With Sheets("Stagiaires")
' Trouver la dernière ligne remplie en utilisant la même chose
' que CTRL+Flèche vers le haut
DLig = .Range("B" & Rows.Count).End(xlUp).Row
' Inscrire les formule sur la nouvelle ligne
.Range("A" & DLig + 1).FormulaLocal = "=LIGNE()-2"
.Range("D" & DLig + 1).FormulaLocal = "=B" & DLig + 1 & "&"" ""&C" & DLig + 1
End With
End Sub

Sub nouvelleligne2()
Dim DLig2 As Long ' Dernière ligne
' Avec la feuille stagiaire
With Sheets("Emargement")
' Trouver la dernière ligne remplie en utilisant la même chose
' que CTRL+Flèche vers le haut
DLig2 = .Range("B" & Rows.Count).End(xlUp).Row
' Inscrire les formule sur la nouvelle ligne
.Range("A" & DLig2 + 1).FormulaLocal = "=LIGNE()-2"
.Range("D" & DLig2 + 1).FormulaLocal = "=B" & DLig2 + 1 & "&"" ""&C" & DLig2 + 1
End With
End Sub
Sub nouvelleligne3()
Dim DLig3 As Long ' Dernière ligne
' Avec la feuille stagiaire
With Sheets("Stages")
' Trouver la dernière ligne remplie en utilisant la même chose
' que CTRL+Flèche vers le haut
DLig3 = .Range("B" & Rows.Count).End(xlUp).Row
' Inscrire les formule sur la nouvelle ligne
.Range("A" & DLig3 + 1).FormulaLocal = "=LIGNE()-2"
.Range("D" & DLig3 + 1).FormulaLocal = "=B" & DLig3 + 1 & "&"" ""&C" & DLig3 + 1
End With
End Sub

Sub creationstagiaires()
Call nouvelleligne1
Call nouvelleligne2
Call nouvelleligne3
End Sub
 

Pièces jointes

  • test version2-19.xls
    49 KB · Affichages: 47

Robert

XLDnaute Barbatruc
Repose en paix
Re : création de lignes sur différents onglets + recopie de 2ème ligne de chaque ongl

Bonjour Jean-Louis, bonjour le forum,

Essaie comme ça :
Code:
Sub creationstagiaires()
Dim o As Object 'déclare la variable o (Onglet)
Dim plv As Integer 'déclare la variable plv (Première Ligne Vide)

For Each o In Sheets 'boucle sur tous les onglets
    plv = o.Cells(Application.Rows.Count, 1).End(xlUp).Row + 1 ''definit la première cellule vide de la colonne A de l'onglet o
    o.Rows(2).Copy o.Cells(plv, 1) 'copie la ligne 2 et la colle dans la première ligne vide
Next o 'prochain onglet de boucle
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 498
Messages
2 088 996
Membres
104 001
dernier inscrit
dessinbecm