[excel vba] Pb affectation macro à un bouton
Thomaaaas
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
michel_m Messages postés 16602 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour à tous,
En quelques mots, j'ai appris à coder VBA sur le tard. C'est pas toujours tres propre mais je m'en sors. Toujours est-il que j'ai un pb récurrent : sur certaines de mes macro, quand je veux l'affecter à un bouton (pour feuille excel), "cette formule est trop compliquée pour etre affectée à un objet". Parfois ca marche, parfois non (la plupart du temps). A noter que la macro fonctionne très bien quand je la fais tourner depuis la page VBA (F5). Je ne comprends pas...
EX sur cette macro toute simple: elle regroupe les onglets suivant dans l'onglet "Recap"
Sub Synth()
Sheets("Recap").Select
EndIndicCode = Range("B1000").End(xlUp).Row
j = 5
For i = 0 To EndIndicCode - 17
feuille = Sheets("recap").Range("c17").Offset(i, 0).Value
Sheets(feuille).Select
Range("A:B").Select
Selection.Copy Destination:=Sheets("Synth").Cells(1, j)
ApplicationCutCopyMode = False
j = j + 3
Next i
Sheets("Synth").Range("A1").Select
End Sub
Jai ecumé les forums avant de poser ma question.
Merci (beaucoup!) d'avance.
PS/C'était ma premiere question sur Commentcamarche, et sur un forum tout court!
En quelques mots, j'ai appris à coder VBA sur le tard. C'est pas toujours tres propre mais je m'en sors. Toujours est-il que j'ai un pb récurrent : sur certaines de mes macro, quand je veux l'affecter à un bouton (pour feuille excel), "cette formule est trop compliquée pour etre affectée à un objet". Parfois ca marche, parfois non (la plupart du temps). A noter que la macro fonctionne très bien quand je la fais tourner depuis la page VBA (F5). Je ne comprends pas...
EX sur cette macro toute simple: elle regroupe les onglets suivant dans l'onglet "Recap"
Sub Synth()
Sheets("Recap").Select
EndIndicCode = Range("B1000").End(xlUp).Row
j = 5
For i = 0 To EndIndicCode - 17
feuille = Sheets("recap").Range("c17").Offset(i, 0).Value
Sheets(feuille).Select
Range("A:B").Select
Selection.Copy Destination:=Sheets("Synth").Cells(1, j)
ApplicationCutCopyMode = False
j = j + 3
Next i
Sheets("Synth").Range("A1").Select
End Sub
Jai ecumé les forums avant de poser ma question.
Merci (beaucoup!) d'avance.
PS/C'était ma premiere question sur Commentcamarche, et sur un forum tout court!
A voir également:
- Cette formule est trop compliquée pour être affectée à un objet
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Déplacer colonne excel - Guide
5 réponses
Bonjour,
Tu nous dit que tu veux envoyer en feuille "recap" et dans ton code tu envoies des copies vers la feuille "synth" ?...
tu nous dit aussi elle regroupe les onglets , or, dans ton code tu n'envoie qu'un seul onglet nommé "feuille"... il y aurait alors un bouton dans chaque feuille ?....
dans l'attente...
Michel
Tu nous dit que tu veux envoyer en feuille "recap" et dans ton code tu envoies des copies vers la feuille "synth" ?...
tu nous dit aussi elle regroupe les onglets , or, dans ton code tu n'envoie qu'un seul onglet nommé "feuille"... il y aurait alors un bouton dans chaque feuille ?....
dans l'attente...
Michel
Bonjour Michel,
Merci pour ta réponse. Quelques précisions :
-En fait dans l'onglet "recap", en C17:C60 : il y a le nom de tous les onglets.
-La variable feuille, permet de les sélectionner les unes apres les autres.
-Afin de copier les colonnes A:B puis de les copier dans l'onglet "Synth" les unes apres les autres (en gros en F:G pour l'onglet 3, puis en I:J pour l'onglet 4...).
Le bouton serait donc uniquement sur "recap" ou sur "synth", peu m'importe :)
Désolé de ne pas avoir été plus clair au départ.
Bonne journée et encore merci.
Merci pour ta réponse. Quelques précisions :
-En fait dans l'onglet "recap", en C17:C60 : il y a le nom de tous les onglets.
-La variable feuille, permet de les sélectionner les unes apres les autres.
-Afin de copier les colonnes A:B puis de les copier dans l'onglet "Synth" les unes apres les autres (en gros en F:G pour l'onglet 3, puis en I:J pour l'onglet 4...).
Le bouton serait donc uniquement sur "recap" ou sur "synth", peu m'importe :)
Désolé de ne pas avoir été plus clair au départ.
Bonne journée et encore merci.
Bonjour
Quelques lignes m'ont posé des problèmes de compréhension (points d'interrogation)
restitue les valeurs des colonnes A B des feuilles dans "synth";proposition:
https://www.cjoint.com/?3Bch3xUCyLK
Quelques lignes m'ont posé des problèmes de compréhension (points d'interrogation)
restitue les valeurs des colonnes A B des feuilles dans "synth";proposition:
Option ExplicitMaquette de travail:
'-------------------------------------------
Sub Synthétiser()
Dim EndIndicCode As Integer, Lig As Integer, Feuille As String
Dim Derlig As Integer, Col As Integer, T_feuille()
'Ecran figé
Application.ScreenUpdating = False
With Sheets("recap")
EndIndicCode = .Range("B1000").End(xlUp).Row
Col = 5
For Lig = 17 To EndIndicCode '???? pas compris les -17
Feuille = .Cells(Lig, "C")
With Sheets(Feuille)
Derlig = .Cells.Find("*", , , , , xlPrevious).Row
T_feuille = .Range("A1:B" & Derlig).Value
Sheets("Synth").Cells(1, Col).Resize(UBound(T_feuille), 2) = T_feuille
Col = Col + 3 '???? +2 si jointif ....
End With
Next
End With
Sheets("Synth").Range("A1").Select
End Sub
https://www.cjoint.com/?3Bch3xUCyLK
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour Michel,
J'aurai du vous mettre le fichier en PJ depuis le debut.
Bizarrement je peux créer un bouton avec votre fichier mais pas avec le mien (meme en mettant vos macro dans mon fichier).
Ci joint le fichier, j'avais pris l'exemple de la macro A3_OngletSynth. Mais ca s'applique aussi à A2_MajData par exemple. (Et ce alors meme que d'autres macros dans le fichier passent par un bouton -situés dans l'onglet Recap-).
https://www.cjoint.com/?0BcteDPtf8n
Merci pour tout Michel.
Bonne fin de journée.
Cordialement, Thomas.
J'aurai du vous mettre le fichier en PJ depuis le debut.
Bizarrement je peux créer un bouton avec votre fichier mais pas avec le mien (meme en mettant vos macro dans mon fichier).
Ci joint le fichier, j'avais pris l'exemple de la macro A3_OngletSynth. Mais ca s'applique aussi à A2_MajData par exemple. (Et ce alors meme que d'autres macros dans le fichier passent par un bouton -situés dans l'onglet Recap-).
https://www.cjoint.com/?0BcteDPtf8n
Merci pour tout Michel.
Bonne fin de journée.
Cordialement, Thomas.