Simplifier une macro sous Excel 2007
Résolu
thinico
Messages postés
10
Date d'inscription
Statut
Membre
Dernière intervention
-
thinico Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
thinico Messages postés 10 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai réalisé une macro pour reporter des données journalières de 4 colonnes différentes dans un tableau mensuel mais mon code est trop long.
Est-il possible de simplifier la macro créée pour alléger le code et la rendre exécutable ?
Voici le code (109 ligne de code) pour une colonne à reporter :
Sub taches()
'
' taches Macro
'
' Touche de raccourci du clavier: Ctrl+w
'
Worksheets("01_2009").Cells(3, 256).End(xlToLeft).Offset(0, 1).Value = Worksheets("Compteur_journalier").Range("x3").Value
(...)
Worksheets("01_2009").Cells(99, 256).End(xlToLeft).Offset(0, 1).Value = Worksheets("Compteur_journalier").Range("x99").Value
['Compteur_journalier'!$c$3:$w$99].ClearContents
ActiveWorkbook.Save
End Sub
Débutant en VBA, je n'ai pas trouvé de solution en m'inspirant des différents site web sur Excel.
Je creuse la question, mais pour l'instant je n'ai pas fais surface ;-)
Alors, merci pour toute aide.
Bien à vous,
Thinico
Windows XP pro
Excel 2007
IE 7
J'ai réalisé une macro pour reporter des données journalières de 4 colonnes différentes dans un tableau mensuel mais mon code est trop long.
Est-il possible de simplifier la macro créée pour alléger le code et la rendre exécutable ?
Voici le code (109 ligne de code) pour une colonne à reporter :
Sub taches()
'
' taches Macro
'
' Touche de raccourci du clavier: Ctrl+w
'
Worksheets("01_2009").Cells(3, 256).End(xlToLeft).Offset(0, 1).Value = Worksheets("Compteur_journalier").Range("x3").Value
(...)
Worksheets("01_2009").Cells(99, 256).End(xlToLeft).Offset(0, 1).Value = Worksheets("Compteur_journalier").Range("x99").Value
['Compteur_journalier'!$c$3:$w$99].ClearContents
ActiveWorkbook.Save
End Sub
Débutant en VBA, je n'ai pas trouvé de solution en m'inspirant des différents site web sur Excel.
Je creuse la question, mais pour l'instant je n'ai pas fais surface ;-)
Alors, merci pour toute aide.
Bien à vous,
Thinico
Windows XP pro
Excel 2007
IE 7
A voir également:
- Simplifier une macro sous Excel 2007
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Save as pdf office 2007 - Télécharger - Bureautique
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Word et excel gratuit - Guide
6 réponses
Bonjour,
Suivant tes explicattions, pas simple à comprendre. Tu peu mettre un exemple de ton classeur sur Cjoint.com ?
A+
Suivant tes explicattions, pas simple à comprendre. Tu peu mettre un exemple de ton classeur sur Cjoint.com ?
A+
:) Entretemps tu a ajouter le lien
Je comprend que tu veux copier les colonnes de C à W de la feuille Compteur_journalier sur la 01_2009
Mais je ne comprend pas sur quel colonne de la feuille 2009 il faut coller ou suivant quel critères.
Explique !
A+
Je comprend que tu veux copier les colonnes de C à W de la feuille Compteur_journalier sur la 01_2009
Mais je ne comprend pas sur quel colonne de la feuille 2009 il faut coller ou suivant quel critères.
Explique !
A+
Re,
En fait, dans la feuille 'Compteur_journalier', ce sont les colonnes "Total" que je souhaite copier dans le tableau de la feuille '01-2009'.
Avec une seule colonne à copier 'Total C' de 'Compteur_journalier' dans 'C' de '01_2009', pas de pb, la macro fonctionne (même si elle est loin d'être parfaite) : j'ai utilisé le principe de la cellule sensible pour pouvoir copier les données de chaque jour au fur et à mesure dans un tableau mensuel.
Mais récemment, j'ai ajouté des lignes de code supplémentaires pour pouvoir copier de nouvelle colonnes créées.
'Total R', Total IM et Total IA de 'Compteur_journalier' respectivement dans 'R', 'IM' et 'IA' de '01_2009.
Désolé pour le manque d'explication, j'espère avoir comblé les lacunes de mon post !?
Merci pour ta patience.
Thinico
En fait, dans la feuille 'Compteur_journalier', ce sont les colonnes "Total" que je souhaite copier dans le tableau de la feuille '01-2009'.
Avec une seule colonne à copier 'Total C' de 'Compteur_journalier' dans 'C' de '01_2009', pas de pb, la macro fonctionne (même si elle est loin d'être parfaite) : j'ai utilisé le principe de la cellule sensible pour pouvoir copier les données de chaque jour au fur et à mesure dans un tableau mensuel.
Mais récemment, j'ai ajouté des lignes de code supplémentaires pour pouvoir copier de nouvelle colonnes créées.
'Total R', Total IM et Total IA de 'Compteur_journalier' respectivement dans 'R', 'IM' et 'IA' de '01_2009.
Désolé pour le manque d'explication, j'espère avoir comblé les lacunes de mon post !?
Merci pour ta patience.
Thinico
Pas de problème...
Je reprend,
Tu veux copier 4 colonnes totaux de la feuille jour dans le feuille 2009 en fonction du N° du jour ?
Est-ce le jour actuel ? si non, quel date à prendre en compte.
Si tu avais laisser la macro cela aurait été plus simple.
Je reprend,
Tu veux copier 4 colonnes totaux de la feuille jour dans le feuille 2009 en fonction du N° du jour ?
Est-ce le jour actuel ? si non, quel date à prendre en compte.
Si tu avais laisser la macro cela aurait été plus simple.
En fait, je rempli le tableau journalier manuellement à la fin de ma journée ou le lendemain (en principe)... puis avec le raccourci clavier 'Ctrl+w' les totaux sont copiés dans le tableau mensuel de '01_2009' et les données du tableau journalier sont éffacées pour permettre de remplir les données pour le jour suivant.
Manipulation à répéter tous les jours en principe : les données suivantes étant copiées dans les cellules vides du tableau mensuel.
Si j'utilise 'Ctrl+w' sans avoir rempli le tableau journalier, cela copie des valeurs nulles dans le tableau mensuel (pour le dimanche par exemple)... etc.
Normalement, le code y était (dans un module), mais en vérifiant, avec Cjoint il faut passer par google Documents pour lire le fichier et on n'a pas accès au code VBA.
Ci-joint le code complet, à l'adresse suivante : https://www.cjoint.com/?ctplbfrm77
Ci joint le fichier Excel en utlisant un autre service : https://www.mediafire.com/?sharekey=d3a12de3c6e849ee5a3d773badf21430e04e75f6e8ebb871
Thinico
Manipulation à répéter tous les jours en principe : les données suivantes étant copiées dans les cellules vides du tableau mensuel.
Si j'utilise 'Ctrl+w' sans avoir rempli le tableau journalier, cela copie des valeurs nulles dans le tableau mensuel (pour le dimanche par exemple)... etc.
Normalement, le code y était (dans un module), mais en vérifiant, avec Cjoint il faut passer par google Documents pour lire le fichier et on n'a pas accès au code VBA.
Ci-joint le code complet, à l'adresse suivante : https://www.cjoint.com/?ctplbfrm77
Ci joint le fichier Excel en utlisant un autre service : https://www.mediafire.com/?sharekey=d3a12de3c6e849ee5a3d773badf21430e04e75f6e8ebb871
Thinico
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Essaye..
J'ai pas vraiment tester mais ce devrait-être bon.
Tu dis...
Sub taches() Dim FL1 As Worksheet Dim FL2 As Worksheet Dim DerCol As Long, Lig As Long, Col As Integer Set FL1 = Sheets("Compteur_journalier") Set FL2 = Sheets("01_2009") DerCol = FL2.Cells(3, 256).End(xlToLeft).Column + 1 For Lig = 3 To 99 For Col = 0 To 3 FL2.Cells(Lig, Col + DerCol) = FL1.Cells(Lig, Col + 24) Next Col Next Lig End Sub
J'ai pas vraiment tester mais ce devrait-être bon.
Tu dis...
Il y a un bug avec le nom que tu a donné à la feuille. (probablement le souligner)
Renomme la "journalier" Attention, pas d'espace complémentaire
et tu change la ligne
Set FL1 = Sheets("journalier")
J'ai tester ça et c'est bon.
Renomme la "journalier" Attention, pas d'espace complémentaire
et tu change la ligne
Set FL1 = Sheets("journalier")
J'ai tester ça et c'est bon.
Voici le lien vers le fichier excel que j'ai réalisé avec le code VBA.
https://www.cjoint.com/?ctooanUTcY
Merci de ton intérêt et de ton aide.
Thinico