Suspendre execution macro pour manipulation de l'utilisateur

Bonjour à tous,

voila je suis bloqué sur quelque chose qui me paraissait simple à faire, mais en fait pas du tout ...

J'ai une macro qui ouvre demande à l'utilisateur d'ouvrir un fichier excel, et je souhaite recopier une feuille de calcul qui n'est jamais nommée de la même façon ... donc je voudrais laisser la possibilité à l'utilisateur de sélectionner la feuille manuellement en se mettant tout simplement dessus, et lorsque c'est fait, qu'il clique sur le bouton "ok" du message lui disant de sélectionner la feuille désirée, et qu'une fois qu'il a cliqué sur la feuille et cliqué sur "ok", la macro reprend sa route.

pour info, j'ai utilisé un msgbox pour dire à l'utilisateur qu'il faut qu'il selectionne sa feuille et clique sur "ok", mais c'est surement pas la solution, car le msgbox bloque toute manipulation.

Merci par avance pour votre aide

Laurent

Bonjour Laurent69490

Il faut utiliser Application.InputBox() avec Type à 8 pour pourvoir sélectionner un Range

  Dim Rng As Range
  Set Rng = Application.InputBox("Merci de sélectionner la cellule A1 de la feuille souhaitée", "CHOIX FEUILLE", Type:=8)
  Debug.Print Rng.Parent.Name

@+

Bonjour BrunoM45,

désolé pour le temps de réaction de ma part.... Merci pour ton aide, c'était exactement ce que je voulais... mais mon besoin a évolué, j'ai besoin de pouvoir modifier les données pendant cette pause ...

en fait, je voudrai pouvoir avoir la macro qui s'arrête, qui me permette de faire des suppressions de ligne que je sélectionne manuellement, et qu'une fois ces suppressions de lignes faites, que la macro continue son petit bonhomme de chemin.

Merci par avance pour ton aide.

Laurent

Bonjour Laurent69490

Dans ce cas, seule solution :
- enregistrer le numéro de ligne en cours de traitement dans une cellule
- arrêter le code
- l'utilisateur devra appuyer de nouveau sur le bouton
- le code relance le traitement à partir de la ligne mémorisée (si c'est un traitement par ligne)

@+

Désolé BrunoM45, mais je suis pas certain d'avoir bien compris ce que tu me proposes... je pense que ça vient de mes explications.

je vais essayer de réexpliquer plus clairement

1/ l'utilisateur lance la macro

2/ la macro s'arrête à un moment précis

3/ l'utilisateur doit pouvoir supprimer des lignes si besoin et manuellement. Il doit vérifier des données et en supprimer avant de continuer la macro

4/ une fois que l'utilisateur a fini de supprimer ces lignes, il puisse cliquer sur le bouton pour continuer la macro.

Merci pour ton aide et patience

Re,

Afin d'éviter de continuer à parler dans le vide et comme cela est indiqué dans la charte, il nous faudrait votre fichier

Cela nous permettrait d'analyser le code et de trouver potentiellement une solution

@+

voila mon fichier, navré le code n'est pas super bien fait ... car surement plus simple de faire tout ça, mais j'y arrive en faisant comme ça.

Pour trouver l'endroit ou je souhaiterai avoir ma pause, il suffit de faire un CTRL+F dans le code et de taper "STOP ICI", c'est à cet endroit que je souhaiterai avoir une pause, laisser faire l'utilisateur ses suppressions de lignes, et reprendre la macro juste en dessous .

J'espère que ça sera suffisamment clair pour toi.

Re,

Merci pour le fichier, on comprend nettement mieux

Voici un exemple de ce que l'on peut faire dans ce cas :
1) Au moment d'arrêter le code, on entre une valeur dans une cellule "STOP" par exemple
2) On arrête le code
3) Pour le relancer on l'exécute de nouveau, mais on teste systématiquement la cellule avant
4) La cellule contenant "STOP" on va à l'endroit ou l'on doit reprendre

Je ne sais pas si cela vous conviendra, à tester

@+

Rechercher des sujets similaires à "suspendre execution macro manipulation utilisateur"