Macro pour copier automatiquement a partir feuille crée [Résolu/Fermé]

Signaler
Messages postés
7
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
7 avril 2017
-
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
-
bonjour je suis nouvelle dans ce site et débutante en tout ce qui macro merci de me renseigner sur le code suivant :

j ai crée une macro qui insère une feuille copier "salaire1(2)a partir d'une autre existante "salaire1"mais mon problème est que je doit copier certaine cellule dans un tableau recap existant dans une autre feuille "total salaires"( je veut copier automatiquement les cellules vers ce tableau recap puisque je peut insérer un nombre N de feuille ma macro inséré la feuille ;insère ligne au niveau du tableau recap;copie les donnes mais seulemnt les donnes de la feuille "salaries1(2)"au lieu qui copie les donnes de la feuille "salair1(3);"salaire1(4)...).(rq donnes feuille "salaire1" existe déjà au niveau du tab recap).je sais pas si je doit utiliser une variable mais comment?
voici mon code que j'utilise

Sub Macro1()
Sheets("SALAIRE1").Select
Sheets("SALAIRE1").Copy Before:=Sheets(2)
Sheets("TOTAL SALAIRES").Select
Rows("17:17").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A17").Select
ActiveCell.FormulaR1C1 = "='SALAIRE1 (2)'!R[-14]C[1]"
Range("B17").Select
ActiveCell.FormulaR1C1 = "='SALAIRE1 (2)'!R[-14]C[1]"
Range("C17").Select
ActiveCell.FormulaR1C1 = "='SALAIRE1 (2)'!R[263]C[-1]"
Range("C17").Select
Selection.AutoFill Destination:=Range("C17:AM17"), Type:=xlFillDefault
Range("C17:AM17").Select
End Sub
Merci bien de me trouver un code solution .

2 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 068
Bonjour,

Comme ceci cela devrait fonctionner si j'ai compris ton projet :
Sub Macro1()
Dim nom As String
Sheets("SALAIRE1").Activate
Sheets("SALAIRE1").Copy Before:=Sheets(2)
nom = ActiveSheet.Name
Sheets("TOTAL SALAIRES").Select
Rows(17).Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Range("A17").FormulaR1C1 = "='" & nom & "'!R[-14]C[1]"
Range("B17").FormulaR1C1 = "='" & nom & "'!R[-14]C[1]"
Range("C17").FormulaR1C1 = "='" & nom & "'!R[263]C[-1]"
Range("C17").AutoFill Destination:=Range("C17:AM17"), Type:=xlFillDefault
End Sub
Messages postés
7
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
7 avril 2017

GRAND MERCI MR .ELLE FONCTIONNE TRÈS BIEN .BRAVO.

TRÈS BONNE CONTINUATION


JE SUIS TRÈS RECONNAISSANTE.

CORDIALEMENT.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 068
Bonsoir et merci du retour.
Profite bien de cette fonction.
Messages postés
7
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
7 avril 2017
>
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

REBONJOUR MR

SI VOUS M'AUTORISER DE POSER UNE AUTRE QUESTION SVP .

JE VEUT SAVOIR SI VOUS POUVEZ M 'INFORMER LE CAS OU POUR LA MÊME FONCTION JE COPIE LES DONNÉES SANS INSERTION DE LIGNE .(TOUT RESTE LE MÊME (AVEC ANNULATION DE L'INSERTION ).

MERCI D'AVANCE &***BONNE JOURNÉE***.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 068
Bonjour,

Ce serait bien d'éviter d'écrire tout en majuscules.

Sans insertion, cela écrasera systématiquement la même ligne : quel intérêt ?
Messages postés
7
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
7 avril 2017
>
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

BONJOUR MR

Merci pour votre réponse et votre compréhension sauf que le dernier code a donner ceci :

=SALAIRE1!B3 =SALAIRE1!C3 =SALAIRE1!$B$280 source insertion

='SALAIRE1 (2)'!B3 ='SALAIRE1 (2)'!C3 ='SALAIRE1 (2)'!B280: la 1ere cellule inserer
='SALAIRE1 (3)'!B4 ='SALAIRE1 (3)'!C4 ='SALAIRE1 (3)'!B281 :la 2em cellule inserer
='SALAIRE1 (4)'!B5 ='SALAIRE1 (4)'!C5 ='SALAIRE1 (4)'!B282 :la 3em cellule inserer

la 1ere cellule inserer est ok
la 2eme ajoute +1
la 3eme ajoute +1 a la 2eme (donc +2).

la solution la 1ere cellule insérer doit être identique avec la 2eme inséré et la 3eme inséré et la N eme insérer.(j'espere qu'il existe une solution).

Merci Mr infiniment pour votre attention et votre aide.

Cordialement.
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 068 >
Messages postés
7
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
7 avril 2017

Bonjour,

Sans le classeur, ni ce qui est souhaité, c'est bien difficile car je ne comprend pas les formules du dernier message. Regardes en supprimant les plages relatives
Sub Macro1()
Dim lig As Long, nom As String
Sheets("SALAIRE1").Activate
Sheets("SALAIRE1").Copy Before:=Sheets(2)
nom = ActiveSheet.Name
Sheets("TOTAL SALAIRES").Activate
lig = Cells(Rows.Count, 1).End(xlUp).Row + 1
Range("A" & lig).FormulaLocal = "='" & nom & "'!B3"
Range("B" & lig).FormulaLocal = "='" & nom & "'!C3"
Range("C" & lig).FormulaLocal = "='" & nom & "'!B280"
Range("C" & lig).AutoFill Destination:=Range("C" & lig & ":AM" & lig), Type:=xlFillDefault
End Sub
Messages postés
7
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
7 avril 2017
>
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020

BONJOUR MR

Mille fois Merci Mr le Nouveau code Fonctionne a Merveille .
Vraiment Bravo ."je vous souhaite une très bonne continuation et prospérité.
Cordialement.
Messages postés
7
Date d'inscription
lundi 3 avril 2017
Statut
Membre
Dernière intervention
7 avril 2017

Excellent *****
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 068
Bonjour et merci du retour : nous y sommes arrivés même si ce fut difficile.