Limiter ou déterminer zone d'action d'une macro

Bonjour les experts !

Petite demande afin d'élargir mes connaissances auprès de vous....

J'ai créer un journal d'activités.

Avec un bouton VBA, un macro sélectionne la/les lignes entières sélectionnées avec mon curseur...

Un UsF demande à l'utilisateur de confirmer la volonté d'effacer la selection...

Jusque là, tout fonctionne.

Ma demande :

Est-il possible d'interdire une zone où l'on peut appeler la macro ?

Tourner différemment, est-il possible d'empêcher d'effacer par erreur des lignes que l'on ne souhaite pas voir disparaître.

Pas de dossier dispo pour l'heure. Mon fichier (structure également) contient des données professionnelles...

D'avance merci !!

Bonjour,

Avec un bouton VBA, un macro sélectionne la/les lignes entières sélectionnées avec mon curseur...

Mauvaise option ! VBA ne sélectionne pas pour être plus efficace !

De plus si la sélection est faite manuellement, elle n'a nul besoin de l'être 2 fois !

Activer une procédure pour intervenir sur une sélection est une méthode tout à fait acceptable, mais ensuite au code de traiter la sélection ou de définir la zone précise d'intervention à partir de la sélection, et la réaliser.

Est-il possible d'interdire une zone où l'on peut appeler la macro ?

Oui!

Plus précisément la macro doit savoir les zones sur lesquelles elle ne doit pas opérer...

Cordialement.

Salut Willau,

Bonjour le vacancier!

en d'autres termes, soit :

  • ces zones sont connues et intangibles et on peut les intégrer directement dans le code ;
  • ces zones sont mouvantes :
° elles sont calculables en fonction de critères précis et la macro s'adapte elle-même ;

° elles ne sont pas calculables et tu dois alors te réserver une plage cachée dans l'océan de cellules de ta feuille pour y encoder tes zones interdites où la macro ira chercher ses infos de traitement.

Tu peux aussi combiner ces solutions en fonction des données à traiter, elles aussi calculables ou mouvantes ou... ou... à encoder quelque part!

A toi d'imaginer ton monde et à nous l'expliquer clairement!

A+

A toi d'imaginer ton monde

Magnifique formule... Salut Curulis !

Bonjour Curulis57 !

Merci pour cet éclaircissement...

Ma zone (haut de page par exemple) est connue et intangible....

Voilà un bout de ma macro (Bouton "oui" qui apparait dans un UsF)

Private Sub Ja_Click()

' Après demande de confirmation d'effacer la sélection, avec la réponse "oui"

Selection.EntireRow.Select

Selection.Activate

Selection.Delete Shift:=xlUp

Unload Me

Range("A1").Select

End Sub

C'est sans doute effectivement dans ce code que je dois intégrer la "formule magique" qui me permettrait d'atteindre mon monde imaginaire !

Admettons que ce soient les lignes 1 à 14 qui ne peuvent pas être effacées... meme si un maladroit clique en F7 et valide la macro...

... une idée pour m'aider ?

D'ores et déjà merci pour le temps consacré

Pense à utiliser les balises Code... !

Private Sub Ja_Click()
    If Selection.Row < 15 Then Exit Sub 'Tu peux éventuellement mettre un message
    ' Après demande de confirmation d'effacer la sélection, avec la réponse "oui"
    Selection.EntireRow.Delete 'et les lignes suivantes sont inutiles
    Unload Me
    Range("A1").Select 'l'intérêt de cette ligne est discutable
End Sub

Cordialement.

NB- La condition sous cette forme simplifiée n'est valide que parce que l'interdiction couvre une zone de lignes continue partant de la 1...

Bonjour MFerrand

Voilà mon problem parfaitement identifié, mais surtout résolu !!

Un grand merci pour ton intervention constructive.

Je vais m'attarder à ta proposition de message si la selection est hors zone... Sans garantie de success, mais on va essayer d'imaginer ce nouveau monde (si j'ose piquer la phrase devenue Presque célèbre...)

Encore merci et bonne journée.

Rechercher des sujets similaires à "limiter determiner zone action macro"