Reference variable d'une cellule
Bonjour
j'essaie à travers l'enregistrement d'une macro à faire entre autre un chrono d'une facture, je sélectionne une cellule la duplique en tirant sur le coin inferieur et selectionne le contenu de la nouvelle cellule comme référence pour la suite de ma macro. ça fonctionne qu'une seule fois, (j'utilise entre autre cette nouvelle valeur pour créer une feuille) mais la valeur créée est toujours la même si je rejoue une seconde fois la macro.
voici le contenu de ma macro :
Merci de vos aides
Sub Macro5()
'
' Macro5 Macro
'
'
Range("B2").Select
ActiveCell.FormulaR1C1 = "FAS-21-0003"
Range("C2").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE('FAS-21-0003'!R[9]C[2])"
Range("C3").Select
End Sub
Sub NewInvoice()
'
' NewInvoice Macro
'
'
Range("A2").Select
Selection.End(xlDown).Select
Range("B5").Select
ActiveCell.FormulaR1C1 = "FAS-21-0004"
Selection.AutoFill Destination:=Range("B5:B6"), Type:=xlFillDefault
Range("B5:B6").Select
Range("B6").Select
ActiveCell.FormulaR1C1 = "FAS-21-0005"
Sheets("Facture type").Select
Sheets("Facture type").Copy After:=Sheets(9)
Sheets("Facture type (2)").Select
Sheets("Facture type (2)").Name = "FAS-21-0005"
Sheets("Historique et Nouveau").Select
Range("A6").Select
ActiveCell.FormulaR1C1 = "=TODAY()"
Range("C6").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE('FAS-21-0005'!R[5]C[2])"
Range("D6").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE('FAS-21-0005'!R[10]C[-2])"
Range("E6").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE('FAS-21-0005'!R[36]C[2])"
Range("F6").Select
ActiveCell.FormulaR1C1 = "=CONCATENATE('FAS-21-0005'!R[36]C[2])"
Range("C7").Select
Sheets("Historique et Nouveau").Select
Range("A2").Select
End Sub
Il y a beaucoup trop de lignes de code utilisées en "Dur" comme par exemple Sheets("Facture type").Copy After:=Sheets(9)
Vous ne devait pas écrire " Copier après le feuille 9" mais copier après la dernière feuille ( il faut donc les compter à chaque fois).
Sheets("Facture type").Copy after:=Worksheets(Worksheets.Count)
c'est d'ailleurs ce même "Worksheets(Worksheets.Count)" qui peut vous servir de variable pour la numérotation de vos feuilles.
Voir exemple pour une personne qui demandait la même type de copie d'onglet avec date et numérotation automatique :
Sub copieraudit()
Dim NBFEUILLE As Long
NBFEUILLE = ActiveWorkbook.Sheets.Count
Sheets("audit_standard").Copy after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = "ABCD_" & Format(Date, "dd-mm-yy") & "_" & NBFEUILLE - 1
'Cette partie est une demande supplémentaire d'inscrire le numéro trouvé en celulle A1 de la feuille.
Worksheets("ABCD_" & Format(Date, "dd-mm-yy") & "_" & NBFEUILLE - 1).Range("A1").Value = 1000 + NBFEUILLE - 1
End SubVous devriez pouvoir adapter le nom d'onglet à votre codification en remplaçant la date par vos variables
(inconnues pour nous)
"FAS" variable ou pas ?
"21" ? variable ou pas
"0005" il semble que oui numéro de feuille je pense