pb pour arreter la macro

popeckjunior

XLDnaute Junior
bonjour forum

j'ai un petit problem pour faire "demi tour " sur une macro
san la suprimé (ceci di meme si je souhaité la supprimé je ne serrer meme pas laquelle


voici me semble til la macro qui si refere :

Sub Insert_logo()


Dim Cell As Range
Dim Msg
Dim StyleBoiteDialogue
Dim Réponse

Msg = "Voulez-vous insérer les logos dans les pages séléctionnées en colonne H ?"
StyleBoiteDialogue = vbYesNo + vbQuestion + vbDefaultButton2
Réponse = MsgBox(Msg, StyleBoiteDialogue, "Insert Logo")

If Réponse = vbYes Then

Worksheets("000_Index").Select
ActiveSheet.Shapes("image1").Select
Selection.Copy

For Each Cell In Range("H19:H300")
If Cell <> "" Then GoSub Insert
Debug.Print Cell

Next Cell

Else
MsgBox "Aucun Logo ne sera inséré !", vbExclamation, "Attention !"

End If





il y a semble til cette partie de macro qui semble resoudre le proble mais je ne c pas commen faut faire




Sub Efface_logo()


Dim Cell As Range
Dim Msg
Dim StyleBoiteDialogue
Dim Réponse

Msg = "Voulez-vous supprimer les logos dans les pages séléctionnées en colonne H ?"
StyleBoiteDialogue = vbYesNo + vbQuestion + vbDefaultButton2
Réponse = MsgBox(Msg, StyleBoiteDialogue, "Efface Logo")

If Réponse = vbYes Then

Worksheets("000_Index").Select
For Each Cell In Range("H19:H300")
If Cell <> "" Then GoSub Efface
Debug.Print Cell.Address
Next Cell

Else
MsgBox "Aucun Logo ne sera supprimé !", vbExclamation, "Attention !"

End If



j'espere avoir forni un max d'info pour que lon puisse m'aider

je vais essayer de voir encore sil y a d'utre code VBA pour resoudre cette solution


merci pour votre aide

yoann
 

popeckjunior

XLDnaute Junior
Re : pb pour arreter la macro

voici le message quil me di


GoSub...Return, instruction


Provoque le branchement vers une sous-routine de procédure, puis le retour à la procédure.

Syntaxe

GoSub line
...
line
...

Return

L'argument line peut être n'importe quelle étiquette de ligne ou numéro de ligne.

Remarques

GoSub et Return peuvent apparaître n'importe où dans une procédure, mais l'instruction GoSub et l'instruction Return correspondante doivent appartenir dans la même procédure. Une sous-routine peut contenir plusieurs instructions Return. Toutefois, la première instruction Return rencontrée provoque la poursuite du déroulement du programme à partir de l'instruction qui suit immédiatement l'instruction GoSub la plus récente.

Note Il n'est pas possible d'accéder à des procédures Sub ou de les quitter au moyen de GoSub...Return.

Conseil Il est parfois préférable de créer des procédures séparées que vous pourrez appeler plutôt que d'utiliser GoSub...Return



je ne comprend pas tout ce uil me di
j'ai essayé de coper le nom macro apres
mais rien


que dois je faire pour faire ce quil me di
 

Roland_M

XLDnaute Barbatruc
Re : pb pour arreter la macro

bonjour
qu'entends tu par :
j'ai un petit problem pour faire "demi tour " sur une macro
san la suprimé (ceci di meme si je souhaité la supprimé je ne serrer meme pas laquelle
?!?


il faudrait voir ta macro complète !
ici on ne voit pas le End Sub ni la sous routine Insert ou Efface !?

concernant l'utilisation de Gosub ça peut être très pratique, ça ne pause aucun problème !
Mais il ne faut pas oublier mettre une sortie "Exit Sub" avant de "tomber dessus"
sinon la sous routine s'exécute et tu tombes sur un Return sans Appel(Gosub) !?

Roland
 
Dernière édition:

popeckjunior

XLDnaute Junior
Re : pb pour arreter la macro

bonjour,
merci pour vos reponses

j'ai un fichier excel qui me permet d'afficher une image à l'aide d'une liste deroulante. une fois le choix effecté on la valide "définitivement" en cliquant sur un bouton. l'image s'applique dc ds les autres feuille du classeur. lorsque lon clic sur le bouton il est par la suite "impossible" (mais pas français) de faire demie tour si l'on souhaite, c'est à dire revenir à l'etat original ou l'on choisie le nom ds la liste deroulante.

jespere avoir replacé l'origine de mon probleme

voici le petit plus qui je l'espere va permettre de resoudre mon petit probleme

voici le code VBA (que jespere complé)


Sub delete_logo()
On Error GoTo GèreErreur
Err.Clear
ActiveWorkbook.Names("ChoixLogo").Delete

Application.DisplayAlerts = False
ActiveWorkbook.Save
Application.DisplayAlerts = True

Exit Sub

GèreErreur: ' Routine de gestion d'erreur.
MsgBox "Le logo a déja été appliqué !", vbExclamation, "Utilisation du dossier de travail Excel"
Exit Sub

End Sub



' Macro créée par HERT
'__________________________________________


Sub Insert_logo()


Dim Cell As Range
Dim Msg
Dim StyleBoiteDialogue
Dim Réponse

Msg = "Voulez-vous insérer les logos dans les pages séléctionnées en colonne H ?"
StyleBoiteDialogue = vbYesNo + vbQuestion + vbDefaultButton2
Réponse = MsgBox(Msg, StyleBoiteDialogue, "Insert Logo")

If Réponse = vbYes Then

Worksheets("000_Index").Select
ActiveSheet.Shapes("image1").Select
Selection.Copy

For Each Cell In Range("H19:H300")
If Cell <> "" Then GoSub Insert
Debug.Print Cell

Next Cell

Else
MsgBox "Aucun Logo ne sera inséré !", vbExclamation, "Attention !"

End If

Worksheets("000_Index").Select
Exit Sub

Insert:
Sheets(CStr(Cell.Offset(0, -3))).Select
Range("A1").Select
ActiveSheet.Paste
Worksheets("000_Index").Select
Return

End Sub
 
Dernière édition:

Roland_M

XLDnaute Barbatruc
Re : pb pour arreter la macro

re

milles excuses ! mais tu t'exprimes mal ! ça induit tout le monde en erreur !
tu n'as pas de problème d'erreur ! ton demi-tour" c'est d'annuler les modifications !?
mais ça c'est beaucoup plus compliqué ! en informatique il n'y a pas de magie !

c'est à toi de prévoir selon tes souhaits, il va falloir effectuer des sauvegardes depuis tes macros avant toutes modifications afin de pouvoir les annuler !

Personnellement je ne le sens pas ! à part dans certaines conditions particulières
on ne peut se permettre une telle lourdeur !

Dans les feuilles excel on peut faire annuler des dernières modif !
mais pas après l'exécution d'une macro !

Roland
 

popeckjunior

XLDnaute Junior
Re : pb pour arreter la macro

bonjour

merci pour l'info

ceci dit aucun changement. soit je n'arrive pas correctement à utilisé le code (j'ai effectué un copier coller), soit il est impossible de revenr à l'origine du fichier cad revenir au choix de l'info ds la liste deroulante

je vais encore regarder le code VBA de UNDO pour voir si je dois modifier des info pour quelle s'execute

merci our ton aide
 

Staple1600

XLDnaute Barbatruc
Re : pb pour arreter la macro

Re


Voila la méthode pour tester le code cité dans mon précédent message

1) Crée un nouveau classeur
2) Tu y insères un module standard ou tu colles le code VBA
3) Dans ce classeur, tu saisi quelques données dans des cellules
4) Tu sélectionnes ces cellules et tu lances la macro ZeroRange
Les cellules de ta sélection prennent alors la valeur 0
5)Ensuite tu vas dans le menu Edition
ou apparait : Undo the ZeroRange macro CTRL+Z
tu cliques dessus et les valeurs initiales que tu avais saisis auparavant sont restaurées.
 

popeckjunior

XLDnaute Junior
Re : pb pour arreter la macro

je viens de faire la manip que t viens de m'expliquer. elle fonctionne. cependant lorsque jeffectue cette opération sur mon fichier elle ne sapplique pas.
je viens de voir pour diminué la taille de mon fichier pour essayer de le mettre sur le forum (en regle generale un exemple est plus parlant ) et il reste vrément trop lourd malgrer la suppresion de la quasi totalité des feuilles et en supprimiment une partie des codes VBA inutile
rien à faire

l'utilisation de cette fonction ne sera semble t'il pas fondamantale, pratique mais bon cela semble relativemet dificile de faire machine arriere

a moins d'une solution miracle je ne vais pas vous monopolisez d'avantage. je vais a priori utiliser le fichier avec le choix d'une liste deroulante sans la validation deffinitive
 
Dernière édition:

popeckjunior

XLDnaute Junior
Re : pb pour arreter la macro

merci pour votre aide

fichier "compressé" reste à 196 MO. la limite du forum est de 48 Mo. dc .....

si tu as un mail perso je peux te le faire suivre. le probleme c'est que le forum n'en profite pas, il pourra avoir la solution sans le probleme. c'est une fin sans le debut.

ceci dit peux etre que les poste precedent serron suffisant...

ou cas ou moi je suis preneur pour cette manip.

meci
yoann
 

Discussions similaires

Réponses
8
Affichages
707

Statistiques des forums

Discussions
312 763
Messages
2 091 847
Membres
105 077
dernier inscrit
Airnee