Simplifier un code VBA
Fermé
Nastia88
Messages postés
9
Date d'inscription
vendredi 18 avril 2014
Statut
Membre
Dernière intervention
22 mai 2014
-
21 mai 2014 à 11:00
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 - 22 mai 2014 à 15:42
f894009 Messages postés 17206 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 22 novembre 2024 - 22 mai 2014 à 15:42
A voir également:
- Simplifier un code VBA
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
- Comment créer un qr code - Guide
15 réponses
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
21 mai 2014 à 15:58
21 mai 2014 à 15:58
Bonjour,
Deux facons de faire (a tester):
'Voir pour le nom du fichier synthese et le nom de la feuille
A+
Deux facons de faire (a tester):
Sub creationsynthese_1()
Dim TCopie(5)
'On ouvre le classeur BDD_mjc_damidot.xlsm
Workbooks.Open "Q:\ACTIVITES\GESTION EXTERNE\Outil de suivi\Diag 2012\BDD_mjc_damidot.xlsm"
'On selectionne la feuille Identification
Sheets("Identification").Select
'Nom officiel -> On copie la cellule B6 du classeur BDD_mjc_damidot.xlsm dans la cellule B3 de le feuille NS du classeur Fiche_SyntheseV1
'mise en memoire des infos
TCopie(0) = Range("B6").Select '1
TCopie(1) = Range("B11").Select '2
TCopie(2) = Range("B33").Select '3
TCopie(3) = Range("B34").Select '4
TCopie(4) = Range("B35").Select '5
TCopie(5) = Range("B37").Select '6
'fermeture du classeur BDD
Workbooks("BDD_mjc_damidot.xlsm").Close False
'recuperation des infos
Range("B3") = TCopie(0)
Range("B4") = TCopie(1)
Range("B5") = TCopie(2)
Range("B6") = TCopie(3)
Range("B7") = TCopie(4)
Range("E7") = TCopie(5)
End Sub
'Voir pour le nom du fichier synthese et le nom de la feuille
Sub creationsynthese_2()
'On ouvre le classeur BDD_mjc_damidot.xlsm
Workbooks.Open "Q:\ACTIVITES\GESTION EXTERNE\Outil de suivi\Diag 2012\BDD_mjc_damidot.xlsm"
'On selectionne la feuille Identification
With Sheets("Identification")
.Range("B6").Copy Workbooks("fichesynthese.xlsm").Sheets("feuil1").Range("B3")
.Range("B11").Copy Workbooks("fichesynthese.xlsm").Sheets("feuil1").Range("B4")
.Range("B33").Copy Workbooks("fichesynthese.xlsm").Sheets("feuil1").Range("B5")
.Range("B34").Copy Workbooks("fichesynthese.xlsm").Sheets("feuil1").Range("B6")
.Range("B35").Copy Workbooks("fichesynthese.xlsm").Sheets("feuil1").Range("B7")
.Range("B37").Copy Workbooks("fichesynthese.xlsm").Sheets("feuil1").Range("E7")
End With
End Sub
A+
Nastia88
Messages postés
9
Date d'inscription
vendredi 18 avril 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 09:32
22 mai 2014 à 09:32
Merci de votre réponse.
Consernant la premiere solution qui m'arrange le plus car le nom du fichier "Q:\ACTIVITES\GESTION EXTERNE\Outil de suivi\Diag 2012\BDD_mjc_damidot.xlsm" est une donnée variable c'est à dire que je vais devoir ouvrir un autre fichier qui a la même forme mais des données differentes et faire les mêmes copier/coller.
Par contre lorsque j'execute la solution n°1 il ne fait pas le copier coller mais indique vrai dans les cellules "B3";"B4";"B5";"B6";"B7";"E7".
Je sais pas trop comment resoudre ce souci.
Consernant la premiere solution qui m'arrange le plus car le nom du fichier "Q:\ACTIVITES\GESTION EXTERNE\Outil de suivi\Diag 2012\BDD_mjc_damidot.xlsm" est une donnée variable c'est à dire que je vais devoir ouvrir un autre fichier qui a la même forme mais des données differentes et faire les mêmes copier/coller.
Par contre lorsque j'execute la solution n°1 il ne fait pas le copier coller mais indique vrai dans les cellules "B3";"B4";"B5";"B6";"B7";"E7".
Je sais pas trop comment resoudre ce souci.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
22 mai 2014 à 11:25
22 mai 2014 à 11:25
Bonjour,
ai oublie d'en enlever
remplacez ces lignes
'mise en memoire des infos
TCopie(0) = Range("B6").Select '1
TCopie(1) = Range("B11").Select '2
TCopie(2) = Range("B33").Select '3
TCopie(3) = Range("B34").Select '4
TCopie(4) = Range("B35").Select '5
TCopie(5) = Range("B37").Select '6
par
'mise en memoire des infos
TCopie(0) = Range("B6") '1
TCopie(1) = Range("B11") '2
TCopie(2) = Range("B33") '3
TCopie(3) = Range("B34") '4
TCopie(4) = Range("B35") '5
TCopie(5) = Range("B37") '6
ai oublie d'en enlever
remplacez ces lignes
'mise en memoire des infos
TCopie(0) = Range("B6").Select '1
TCopie(1) = Range("B11").Select '2
TCopie(2) = Range("B33").Select '3
TCopie(3) = Range("B34").Select '4
TCopie(4) = Range("B35").Select '5
TCopie(5) = Range("B37").Select '6
par
'mise en memoire des infos
TCopie(0) = Range("B6") '1
TCopie(1) = Range("B11") '2
TCopie(2) = Range("B33") '3
TCopie(3) = Range("B34") '4
TCopie(4) = Range("B35") '5
TCopie(5) = Range("B37") '6
Nastia88
Messages postés
9
Date d'inscription
vendredi 18 avril 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 13:43
22 mai 2014 à 13:43
Alors ça marche parfaitement sauf quand j'ajoute les nom de plage de cellules par exemple :
Sub creationsynthese_1()
Dim TCopie(5)
'On ouvre le classeur BDD_mjc_damidot.xlsm
Workbooks.Open "Q:\ACTIVITES\GESTION EXTERNE\Outil de suivi\Diag 2012\BDD_mjc_damidot.xlsm"
'On selectionne la feuille Identification
Sheets("Identification").Select
'Nom officiel -> On copie la cellule B6 du classeur BDD_mjc_damidot.xlsm dans la cellule B3 de le feuille NS du classeur Fiche_SyntheseV1
'mise en memoire des infos
TCopie(0) = Range("B6") '1
TCopie(1) = Range("B11") '2
TCopie(2) = Range("B33") '3
TCopie(3) = Range("B34") '4
TCopie(4) = Range("B35") '5
TCopie(5) = Range("B37") '6
TCopie(6) = Range("EFFECTIF_MOYEN") '7
TCopie(7) = Range("EFFECTIF_Mis_à_Disposition_par_ville") '8
TCopie(8) = Range("Apports_ville") '9
'fermeture du classeur BDD
Workbooks("BDD_mjc_damidot.xlsm").Close False
'recuperation des infos
Range("B3") = TCopie(0)
Range("B4") = TCopie(1)
Range("B5") = TCopie(2)
Range("B6") = TCopie(3)
Range("B7") = TCopie(4)
Range("E7") = TCopie(5)
Range("A13") = TCopie(6)
Range("A32") = TCopie(7)
Range("A45") = TCopie(8)
End Sub
Cela me pose un probleme si je ne peux pas utiliser ces nom de plage car mon tableau par exemple EFFECTIF_MOYEN peut subir des modification.
Sub creationsynthese_1()
Dim TCopie(5)
'On ouvre le classeur BDD_mjc_damidot.xlsm
Workbooks.Open "Q:\ACTIVITES\GESTION EXTERNE\Outil de suivi\Diag 2012\BDD_mjc_damidot.xlsm"
'On selectionne la feuille Identification
Sheets("Identification").Select
'Nom officiel -> On copie la cellule B6 du classeur BDD_mjc_damidot.xlsm dans la cellule B3 de le feuille NS du classeur Fiche_SyntheseV1
'mise en memoire des infos
TCopie(0) = Range("B6") '1
TCopie(1) = Range("B11") '2
TCopie(2) = Range("B33") '3
TCopie(3) = Range("B34") '4
TCopie(4) = Range("B35") '5
TCopie(5) = Range("B37") '6
TCopie(6) = Range("EFFECTIF_MOYEN") '7
TCopie(7) = Range("EFFECTIF_Mis_à_Disposition_par_ville") '8
TCopie(8) = Range("Apports_ville") '9
'fermeture du classeur BDD
Workbooks("BDD_mjc_damidot.xlsm").Close False
'recuperation des infos
Range("B3") = TCopie(0)
Range("B4") = TCopie(1)
Range("B5") = TCopie(2)
Range("B6") = TCopie(3)
Range("B7") = TCopie(4)
Range("E7") = TCopie(5)
Range("A13") = TCopie(6)
Range("A32") = TCopie(7)
Range("A45") = TCopie(8)
End Sub
Cela me pose un probleme si je ne peux pas utiliser ces nom de plage car mon tableau par exemple EFFECTIF_MOYEN peut subir des modification.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
22 mai 2014 à 14:03
22 mai 2014 à 14:03
Re,
il faut modifier la declaration de la variable TCopie(5) en TCopie(8)
EFFECTIF_MOYEN peut subir des modification Vois pas le rapport !!!!!
il faut modifier la declaration de la variable TCopie(5) en TCopie(8)
EFFECTIF_MOYEN peut subir des modification Vois pas le rapport !!!!!
Nastia88
Messages postés
9
Date d'inscription
vendredi 18 avril 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 14:13
22 mai 2014 à 14:13
Merci encore, je viens de faire la modification pour la declaration de la variable ça beug apartir de la ligne
TCopie(6) = Range("EFFECTIF_MOYEN") '7
TCopie(6) = Range("EFFECTIF_MOYEN") '7
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
Modifié par f894009 le 22/05/2014 à 14:20
Modifié par f894009 le 22/05/2014 à 14:20
Re,
variable ça beug Veut rien dire, quel message d'erreur ?????
EFFECTIF_MOYEN est bien un nom de cellule ????
variable ça beug Veut rien dire, quel message d'erreur ?????
TCopie(6) = Range("EFFECTIF_MOYEN") '7
EFFECTIF_MOYEN est bien un nom de cellule ????
Nastia88
Messages postés
9
Date d'inscription
vendredi 18 avril 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 14:23
22 mai 2014 à 14:23
Le message d'erreur est le suivant : Erreur d'execution '1004' : La méthode 'Range' de l'objet '_Global' à echoué
Et le debogage commence à partir de la ligne : TCopie(6) = Range("EFFECTIF_MOYEN") '7
Voilà
Et le debogage commence à partir de la ligne : TCopie(6) = Range("EFFECTIF_MOYEN") '7
Voilà
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
22 mai 2014 à 14:27
22 mai 2014 à 14:27
Re,
je repete la question: "EFFECTIF_MOYEN" est bien un nom de cellule ou ...... ????
je repete la question: "EFFECTIF_MOYEN" est bien un nom de cellule ou ...... ????
Nastia88
Messages postés
9
Date d'inscription
vendredi 18 avril 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 14:33
22 mai 2014 à 14:33
Desolé, c'est le nom d'une plage de cellules (un tableau).
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
22 mai 2014 à 14:38
22 mai 2014 à 14:38
Re,
Comme quoi. Que voulez vous avoir dans TCopie(6), TCopie(7), TCopie(8) ???
Comme quoi. Que voulez vous avoir dans TCopie(6), TCopie(7), TCopie(8) ???
Nastia88
Messages postés
9
Date d'inscription
vendredi 18 avril 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 14:47
22 mai 2014 à 14:47
Si j'ai bien compris la question, j'aimerai coller dans ma feuille de synthese les tableaux :
EFFECTIF_MOYEN dans la cellule A13
EFFECTIF_Mis_à_Disposition_par_ville dans la cellule A32
Apports_ville dans la cellule A45
EFFECTIF_MOYEN dans la cellule A13
EFFECTIF_Mis_à_Disposition_par_ville dans la cellule A32
Apports_ville dans la cellule A45
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
22 mai 2014 à 14:51
22 mai 2014 à 14:51
Re,
EFFECTIF_MOYEN dans la cellule A13 tout un tableau dans une cellule !!
Le tableau EFFECTIF_MOYEN contient quoi ???
EFFECTIF_MOYEN dans la cellule A13 tout un tableau dans une cellule !!
Le tableau EFFECTIF_MOYEN contient quoi ???
Nastia88
Messages postés
9
Date d'inscription
vendredi 18 avril 2014
Statut
Membre
Dernière intervention
22 mai 2014
22 mai 2014 à 15:16
22 mai 2014 à 15:16
Non je ne veux pas coller un tableau dans une cellule mais comme j'ai fait dans mon premier code donner une cellule de réference à partir de laquelle le collage commence. Cette méthode marche avec l'ancien code.
Le tableau fait 6 colonnes et 18 lignes.
Le tableau fait 6 colonnes et 18 lignes.
f894009
Messages postés
17206
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
22 novembre 2024
1 710
22 mai 2014 à 15:42
22 mai 2014 à 15:42
Re,
Ok pour effectif_moyen, et pour les deux autres ????
Ok pour effectif_moyen, et pour les deux autres ????