Comment integrer le contenu d'une variable dans une macro
Résolu
robbynasch
Messages postés
6
Statut
Membre
-
robbybasch Messages postés 101 Statut Membre -
robbybasch Messages postés 101 Statut Membre -
Bonjour,
Nous sommes dans une feuille qui gère la comptabilité d'une association
J'ai créé une macro afin de récupérer automatiquement les données de l'année n-1, pour les recopier dans l'année n. Jusqu’à présent tout est OK.
Mais je voudrais l'améliorer , en effet a chaque plan comptable il faut que j'aille dans la macro changer l'année en cours : voici le debut de la macro :
Sub ImporterDonneesSansOuvrir()
Dim chemin As String, fichier As String
chemin = "F:\Poney Club du Moulin\Comptabilité\"
fichier = "2015_Comptabilité Poney Club.xlsm"
'Actualisation feuille compte de résultat général
'Plage D8 à D21 compte de résultat général
ThisWorkbook.Names.Add "plagecrg", _
RefersTo:="='" & chemin & "[" & fichier & "]Compte de résultat général'!$C$8:$C$21"
With Sheets("Compte de résultat général")
Worksheets("Compte de résultat général").Range("D8:D21").NumberFormat = "#,##0.00 $"
Worksheets("Compte de résultat général").Range("C8:C21").NumberFormat = "#,##0.00 $"
Worksheets("Compte de résultat général").Range("E8:E21").NumberFormat = "#,##0.00 $"
Worksheets("Compte de résultat général").Range("C8:E21").NumberFormat = "#,##0.00 $"
.[D8:D21] = "=plagecrg"
.[D8:D21].Copy
Sheets("Compte de résultat général").Range("$D$8:$D$21").PasteSpecial xlPasteValues
End With
Ce qui m'intéresserait serait de passer 2015 (fichier = 2015_Comptabilité..." dans une variable qui existe pour d'autres calcul (elle se trouve dans l'onglet "données générales G3" du style fichier= Données générales G3 + "_Comptabilité Poney Club.xlsm"
Ainsi tout serait automatiser.
Merci de votre aide.
Cordielement Robby
Nous sommes dans une feuille qui gère la comptabilité d'une association
J'ai créé une macro afin de récupérer automatiquement les données de l'année n-1, pour les recopier dans l'année n. Jusqu’à présent tout est OK.
Mais je voudrais l'améliorer , en effet a chaque plan comptable il faut que j'aille dans la macro changer l'année en cours : voici le debut de la macro :
Sub ImporterDonneesSansOuvrir()
Dim chemin As String, fichier As String
chemin = "F:\Poney Club du Moulin\Comptabilité\"
fichier = "2015_Comptabilité Poney Club.xlsm"
'Actualisation feuille compte de résultat général
'Plage D8 à D21 compte de résultat général
ThisWorkbook.Names.Add "plagecrg", _
RefersTo:="='" & chemin & "[" & fichier & "]Compte de résultat général'!$C$8:$C$21"
With Sheets("Compte de résultat général")
Worksheets("Compte de résultat général").Range("D8:D21").NumberFormat = "#,##0.00 $"
Worksheets("Compte de résultat général").Range("C8:C21").NumberFormat = "#,##0.00 $"
Worksheets("Compte de résultat général").Range("E8:E21").NumberFormat = "#,##0.00 $"
Worksheets("Compte de résultat général").Range("C8:E21").NumberFormat = "#,##0.00 $"
.[D8:D21] = "=plagecrg"
.[D8:D21].Copy
Sheets("Compte de résultat général").Range("$D$8:$D$21").PasteSpecial xlPasteValues
End With
Ce qui m'intéresserait serait de passer 2015 (fichier = 2015_Comptabilité..." dans une variable qui existe pour d'autres calcul (elle se trouve dans l'onglet "données générales G3" du style fichier= Données générales G3 + "_Comptabilité Poney Club.xlsm"
Ainsi tout serait automatiser.
Merci de votre aide.
Cordielement Robby
1 réponse
-
Bonjour
dim An_0 as integer
An_0= sheets("données générales").range("G3")
fichier =An_0 &"_Comptabilité Poney Club.xlsm"
mais pourquoiWorksheets("Compte de résultat général").Range("D8:D21").NumberFormat = "#,##0.$"
puis
Sheets("Compte de résultat général").Range("$D$8:$D$21").PasteSpecial xlPasteValues
car on ne sait pas trop sur quel classeur tu te situes.... peut-^tre fichier source
An_0-1
peut-^tre simplifier avecWorksheets("Compte de résultat général").Range("C8:E21").NumberFormat = "#,##0.00 $"
Michel-
-
Re bonjour Michel
J'ai essayé ta proposition mais cela ne fonctionne pas. Voilà ce que j'ai noté :
Sub ImporterDonneesSansOuvrir()
Dim chemin As String, fichier As String
Dim Annee As Integer
chemin = "F:\Poney Club du Moulin\Comptabilité\"
Annee = Sheets("Données générales").Range("G3")
fichier = Annee & "_Comptabilité Poney Club.xlsm"
'fichier = "2015_Comptabilité Poney Club.xlsm" ' je garde sous le coude
'Actualisation feuille compte de résultat général
'Plage D8 à D21 compte de résultat général
ThisWorkbook.Names.Add "plagecrg", _
RefersTo:="='" & chemin & "[" & fichier & "]Compte de résultat général'!$C$8:$C$21"
Pour faire simple, dans mon classeur j'ai plusieurs onglets pour toute la comptabilité, la macro va chercher les données se trouvant dans plusieurs onglets dans n-1 pour les rapatriér dans n (compte de résultat général, bilan, bilan impots etc). tout cela fonctionne. Sauf l'année sur laquelle on va enregistrer (j'ai oublié de te préciser que cette cellule G3 a un nom "année_de_l_exercice").- tu es obligé d'ouvrir le fichier an_ 0 !!!
Mettre les 2 classeurs dans un .zip (seulement les feuilles concernées) sans données confidentielles en pièce jointe sur https://www.cjoint.com/
et coller le raccourci par un clic droit sur le lien proposé dans le message de réponse
sinon on n'en sortira pas...
-
-
Tout fonctionne parfaitement, juste le petit oubli ci-dessus. La personne chargée de la comptabilité est ravie et me demande de te saluer et de te remercier, ce que je fais avec le plus grand plaisir.
Le sujet est resolu
Et un grand merci à la communauté toujours pret à aider. (l'essentiel n'est pas de tout connaitre mais de savoir ou aller chercher l'information)...
CDL
Robby
-