Copie de classeurs
djfa94
Messages postés
31
Date d'inscription
Statut
Membre
Dernière intervention
-
djfa94 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
djfa94 Messages postés 31 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Bonjour à tous,
Je joins mes deux fichiers avec un macro comprise dedans, c'est un code enregistré.
1: j'aimerai que la macro fonctionne sans que la fenêtre du classeur source s'ouvre à chaque fois.
2: Il faut savoir que le nom du fichier source sera différent après chaque copie.
3: j'aimerai que les lignes soient copiées les une en dessous des autres à chaque nouveau classeur.
Pour le moment ça serait, bien.
Merci à vous tous. :)
http://ti1ca.com/6qo9vtp2-source-source.xlsx.html
http://ti1ca.com/5nwux0q6-destination.xlsm.html
Bonjour à tous,
Je joins mes deux fichiers avec un macro comprise dedans, c'est un code enregistré.
1: j'aimerai que la macro fonctionne sans que la fenêtre du classeur source s'ouvre à chaque fois.
2: Il faut savoir que le nom du fichier source sera différent après chaque copie.
3: j'aimerai que les lignes soient copiées les une en dessous des autres à chaque nouveau classeur.
Pour le moment ça serait, bien.
Merci à vous tous. :)
http://ti1ca.com/6qo9vtp2-source-source.xlsx.html
http://ti1ca.com/5nwux0q6-destination.xlsm.html
Configuration: Windows / Chrome 77.0.3865.120
A voir également:
- Copie de classeurs
- Copie cachée - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
- Copie disque dur - Guide
- Copie rapide - Télécharger - Gestion de fichiers
4 réponses
Bonjour,
j'aimerai que la macro fonctionne
Moi aussi, j'aimerai bien un tas de choses et vous que savez vous faire en VBA Excel??
j'aimerai que la macro fonctionne
Moi aussi, j'aimerai bien un tas de choses et vous que savez vous faire en VBA Excel??
Bonjour,
« Je suis novice. » La vue de ta macro le confirme !
Par Exemple, si activer une fenêtre a bien pour effet d'activer le classeur qu'elle contient, la bonne méthode c'est d'activer directement le classeur (quoique dans 99,9 % des cas, activer un classeur est totalement inutile), au lieu de :
écrire
La programmation exige beaucoup de rigueur, pour apprendre à coder correctement, voici quelques conseils qui t'éviterons bien des déboires :
• commences tous les modules par Option Explicit, cela oblige à déclarer toutes les variables ;
• déclares les variables avec le type ad hoc et faire attention à préciser le type après chaque nom de variable ;
• limites leur portée au strict nécessaire (i.e. locale, privée, publique ou globale), afin qu'elles n'existent que là où elles sont utiles ;
• envisages tous les types potentiels de chaque variable pour éviter les erreurs ;
• dans le doute prévois un gestionnaire d"erreur ;
• n'utilises jamais .Select, évites d'utiliser les objets actifs : Selection, Activecell, Activesheet, ... (sauf, très très rarement, lorsque c'est absolument indispensable) ;
• évites les références implicites(i.e. partielles), privilégies les références explicites (i.e. suffisamment complètes),
--- par exemple, au lieu de
donc, précises toujours la feuille pour un objet Range (Cells, Rows, ...) et la propriété cible (Value, Text, ...)
• n'hésites pas à utiliser des variables pour représenter les objets, ça facilite l'écriture et la lecture du code,
--- par exemple :
• pour les mêmes raisons, n'hésites pas à utiliser aussi
• évites d'utiliser des propriétés ou méthodes d'objet héritées qui pourraient ne pas exister,
--- par exemple, au lieu de :
en effet l'objet Range n'appartient pas à Sheet mais à Worksheet ;
• évites d'utiliser le Presse-Papier, préfères la copie directe avec une destination
bien, pour copier uniquement les valeurs :
• commentes le code, penses à celui (peut-être toi) qui devra le déboguer dans deux ou trois ans !
• respectes certaines règles de nommage des variables, notamment l'emploi d'un préfixe : le code est plus lisible par tous. Voir ici : https://argyronet.developpez.com/office/vba/convention/
• n'écris pas de procédures fleuves (très longues), scindes les en différentes procédures élémentaires : là encore le code sera plus lisible.
• libéres la mémoire dès que possible, en particulier pour les tableaux et les objets.
Tu trouveras ici un excellent cours VBA gratuit pour débutants (et plus si affinités ...),
même si, pour simplifier les explications, il n'applique pas toujours les conseils précédents :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
Et le premier d'une série de 5 cours gratuits très complets pour apprendre par la pratique :
https://laurent-ott.developpez.com/tutoriels/programmation-excel-vba-tome-1/
Et très utile, le site de Jacques Boigontier, sur lequel on trouve une multitude d'exemples :
http://boisgontierjacques.free.fr/index2.htm
« Je suis novice. » La vue de ta macro le confirme !
Par Exemple, si activer une fenêtre a bien pour effet d'activer le classeur qu'elle contient, la bonne méthode c'est d'activer directement le classeur (quoique dans 99,9 % des cas, activer un classeur est totalement inutile), au lieu de :
Windows("destination.xlsm").Activate
écrire
Workbooks("destination.xlsm").Activate
La programmation exige beaucoup de rigueur, pour apprendre à coder correctement, voici quelques conseils qui t'éviterons bien des déboires :
• commences tous les modules par Option Explicit, cela oblige à déclarer toutes les variables ;
• déclares les variables avec le type ad hoc et faire attention à préciser le type après chaque nom de variable ;
• limites leur portée au strict nécessaire (i.e. locale, privée, publique ou globale), afin qu'elles n'existent que là où elles sont utiles ;
• envisages tous les types potentiels de chaque variable pour éviter les erreurs ;
• dans le doute prévois un gestionnaire d"erreur ;
• n'utilises jamais .Select, évites d'utiliser les objets actifs : Selection, Activecell, Activesheet, ... (sauf, très très rarement, lorsque c'est absolument indispensable) ;
• évites les références implicites(i.e. partielles), privilégies les références explicites (i.e. suffisamment complètes),
--- par exemple, au lieu de
= Cells(1,2)écrire
= Worksheets(1).Cells(1,2).Value,
donc, précises toujours la feuille pour un objet Range (Cells, Rows, ...) et la propriété cible (Value, Text, ...)
• n'hésites pas à utiliser des variables pour représenter les objets, ça facilite l'écriture et la lecture du code,
--- par exemple :
Set MaPlage = Me.Range("B2:C8");
• pour les mêmes raisons, n'hésites pas à utiliser aussi
Withet
End With;
• évites d'utiliser des propriétés ou méthodes d'objet héritées qui pourraient ne pas exister,
--- par exemple, au lieu de :
Sheets(1).Range("A1")écrire
Workheets(1).Range("A1"),
en effet l'objet Range n'appartient pas à Sheet mais à Worksheet ;
• évites d'utiliser le Presse-Papier, préfères la copie directe avec une destination
Source.Copy Destinationou
bien, pour copier uniquement les valeurs :
Destination.valeur = Source.Valeur.
• commentes le code, penses à celui (peut-être toi) qui devra le déboguer dans deux ou trois ans !
• respectes certaines règles de nommage des variables, notamment l'emploi d'un préfixe : le code est plus lisible par tous. Voir ici : https://argyronet.developpez.com/office/vba/convention/
• n'écris pas de procédures fleuves (très longues), scindes les en différentes procédures élémentaires : là encore le code sera plus lisible.
• libéres la mémoire dès que possible, en particulier pour les tableaux et les objets.
Tu trouveras ici un excellent cours VBA gratuit pour débutants (et plus si affinités ...),
même si, pour simplifier les explications, il n'applique pas toujours les conseils précédents :
ftp://ftp-developpez.com/bidou/Cours/VBA/formationVBA.pdf
Et le premier d'une série de 5 cours gratuits très complets pour apprendre par la pratique :
https://laurent-ott.developpez.com/tutoriels/programmation-excel-vba-tome-1/
Et très utile, le site de Jacques Boigontier, sur lequel on trouve une multitude d'exemples :
http://boisgontierjacques.free.fr/index2.htm
Bonjour Patrice33740
Si la personne tient vraiment a ne pas ouvrir le fichier source:
http://boisgontierjacques.free.fr/pages_site/ado.htm#ADOAjout
Si la personne tient vraiment a ne pas ouvrir le fichier source:
http://boisgontierjacques.free.fr/pages_site/ado.htm#ADOAjout
Merci à vous deux.
c'est vrai qu'il faut apprendre à coder pour que cela fonctionne bien, mais en tant que novice, il faut bien un ou des guides.
Je vais tester ce que vous m'avez apporté, surtout le workbooks, je vais essayer de trouver comment ne pas tenir compte du nom du classeur et d'empiler les données par la suite.
c'est vrai qu'il faut apprendre à coder pour que cela fonctionne bien, mais en tant que novice, il faut bien un ou des guides.
Je vais tester ce que vous m'avez apporté, surtout le workbooks, je vais essayer de trouver comment ne pas tenir compte du nom du classeur et d'empiler les données par la suite.