Macro pour copier automatiquement a partir feuille crée

Résolu/Fermé
m-finance80 Messages postés 7 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 avril 2017 - 3 avril 2017 à 13:24
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 7 avril 2017 à 18:01
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

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
3 avril 2017 à 23:54
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
0
m-finance80 Messages postés 7 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 avril 2017
4 avril 2017 à 12:24
GRAND MERCI MR .ELLE FONCTIONNE TRÈS BIEN .BRAVO.

TRÈS BONNE CONTINUATION


JE SUIS TRÈS RECONNAISSANTE.

CORDIALEMENT.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
4 avril 2017 à 18:28
Bonsoir et merci du retour.
Profite bien de cette fonction.
0
m-finance80 Messages postés 7 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 avril 2017 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
5 avril 2017 à 11:02
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***.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
5 avril 2017 à 13:32
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 ?
0
m-finance80 Messages postés 7 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 avril 2017
6 avril 2017 à 10:52
Bonjour Mr

Car si je veut copier les donnes du tableau "recap salaires" dans un autre tableau il ne prend pas en considération la ligne insérer ex si je fait =A17 dans une autre feuille il la saute en cas insertion automatique il lit la cellule A18 et il laisse la cellule A17...
avez vous une solution pour la lire (la cellule insérer)en cas d'insertion dans un autre tableau .
Le cas idéale pour moi est de faire un tableau vide ou se copie les données automatiquement (sans insertion donc de ligne dans la macro)pour pouvoir ensuite lire ces donnes dans un autre tableau qui contient formule (car si j'opte de faire une autre macro sera un peut complique car le second tableau a plusieurs format ).
Merci infiniment pour votre aide si c'est possible. Sinon Merci Aussi Infiniment.
  • BONNE JOURNÉE*
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
6 avril 2017 à 18:28
Bonjour,

Comme je n'ai pas le classeur, ni la fonctionnalité recherchée, je n'ai que corrigé le code pour qu'il fonctionne.
Au lieu de faire une insertion, il faudrait mettre ta ligne en fin de tableau.
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).FormulaR1C1 = "='" & nom & "'!R[-14]C[1]"
Range("B" & lig).FormulaR1C1 = "='" & nom & "'!R[-14]C[1]"
Range("C" & lig).FormulaR1C1 = "='" & nom & "'!R[263]C[-1]"
Range("C" & lig).AutoFill Destination:=Range("C" & lig & ":AM" & lig), Type:=xlFillDefault
End Sub
0
m-finance80 Messages postés 7 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 avril 2017 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
7 avril 2017 à 01:54
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.
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684 > m-finance80 Messages postés 7 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 avril 2017
7 avril 2017 à 09:59
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
0
m-finance80 Messages postés 7 Date d'inscription lundi 3 avril 2017 Statut Membre Dernière intervention 7 avril 2017 > gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020
7 avril 2017 à 14:36
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.
0