Limitation usage de macro

Le
Christian de BXL
Bonjour,
Pour limiter l'usage d'une macro à une plage de cellule, j'utilise
l'instruction suivant e généreusement communiquée sur ce forum:
If Intersect(ActiveCell, [CelluleDebut:CelluleFin]) Is Nothing Then
vReponse = MsgBox("Cette instruction n'est pas disponible" & Chr(13) &
"à cet endroit de la feuille de soins", vbOKOnly, "Désolé")
Exit Sub
End If

Mes cellules de début et de fin de plage sont nommées, mon tableau ayant une
grandeur variable.
Mon problème est: je place cette limitation en début d'une macro permettant
de supprimer une ligne. Comment faire pour qu'il ne soit pas possible de
supprimer la ligne de contenant la cellule de début de plage et celle de fin
de plage en utilisant cette macro
J'ai essayé :"If Intersect(ActiveCell, [CelluleDebut+1:CelluleFin-1]) Is
Nothing Then.." mais cela ne fonctionne pas.
Y a-t-il une autre solution?
Merci
Christian
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
francois.forcet
Le #5235591
Rebonjours Christian

Pour limiter une plage de la ligne 10 à la ligne 20 par exemple
j'utilise ces lignes :

If Activecel.row >= 10 and Activecell.Row < Then
Code
End If
Donc pour la macro de suppression de ligne peut être mettre
If Activecel.row >= 10+1 and Activecell.Row < -1 Then
Code
End If

Idem pour limiter les colonnes avec Activecell.Column

Peut être une piste
Dis moi !!!!
Daniel.C
Le #5235581
Bonsoir.
Essaie :

Set plage = Range(CelluleDebut & ":" & CelluleFin).Offset(1)
Set plage = plage.Resize(plage.Rows.Count - 2)
If Intersect(ActiveCell, plage) Is Nothing Then

Cordialement.
Daniel
"Christian de BXL" le message de news:
Bonjour,
Pour limiter l'usage d'une macro à une plage de cellule, j'utilise
l'instruction suivant e généreusement communiquée sur ce forum:
If Intersect(ActiveCell, [CelluleDebut:CelluleFin]) Is Nothing Then
vReponse = MsgBox("Cette instruction n'est pas disponible" & Chr(13) &
"à cet endroit de la feuille de soins", vbOKOnly, "Désolé")
Exit Sub
End If

Mes cellules de début et de fin de plage sont nommées, mon tableau ayant
une
grandeur variable.
Mon problème est: je place cette limitation en début d'une macro
permettant
de supprimer une ligne. Comment faire pour qu'il ne soit pas possible de
supprimer la ligne de contenant la cellule de début de plage et celle de
fin
de plage en utilisant cette macro
J'ai essayé :"If Intersect(ActiveCell, [CelluleDebut+1:CelluleFin-1]) Is
Nothing Then....." mais cela ne fonctionne pas.
Y a-t-il une autre solution?
Merci
Christian


Christian de BXL
Le #5177541
Bonjour Daniel,
Je te remercie de ta réponse, d'autant plus que tu es à l'origine de
l'instruction originale de limitation d'usage de macro, qui m'a déjà été d'un
grand secours.
Présentement, j'ai essayé ta solution en insérant :

Set plage = Range(CelluleDebut & ":" & CelluleFin).Offset(1)
Set plage = plage.Resize(plage.Rows.Count - 2)
If Intersect(ActiveCell, plage) Is Nothing Then
vReponse = MsgBox("Cette instruction n'est pas disponible", vbOKOnly,
"Désolé")
Exit Sub
End If

en début de macro.
Cela ne fonctionne pas, la première ligne appelle "une erreur d'exécution
1004 La méthode "Range" de l'objet '_Global a échoué".
Erreur de ma part dans l'insertion des lignes ou autre erreur?
Merci à toi
Christian
Christian de BXL
Le #5177531
Bonjour François,
Merci pour ta réponse, mais je cherche une limitation de cellule à cellules.
La limitation par ligne permet, dans mon cas, des débordement latéraux en
dehors de la zone imprimable de mon classeur, ce qui perturbe la bonne
impression des pages.
A bientôt

"" wrote:

Rebonjours Christian

Pour limiter une plage de la ligne 10 à la ligne 20 par exemple
j'utilise ces lignes :

If Activecel.row >= 10 and Activecell.Row < Then
Code
End If
Donc pour la macro de suppression de ligne peut être mettre
If Activecel.row >= 10+1 and Activecell.Row < -1 Then
Code
End If

Idem pour limiter les colonnes avec Activecell.Column

Peut être une piste
Dis moi !!!!



Daniel.C
Le #5176281
Bonjour.
Essaie plutôt :

Set plage = Range(Range("celluledebut").Address,
Range("cellulefin").Address).Offset(1)
Set plage = plage.Resize(plage.Rows.Count - 2)
If Intersect(ActiveCell, plage) Is Nothing Then
vReponse = MsgBox("Cette instruction n'est pas disponible" & Chr(13) & _
"à cet endroit de la feuille de soins", vbOKOnly, "Désolé")
Exit Sub
End If

Daniel
"Christian de BXL" le message de news:
Bonjour Daniel,
Je te remercie de ta réponse, d'autant plus que tu es à l'origine de
l'instruction originale de limitation d'usage de macro, qui m'a déjà été
d'un
grand secours.
Présentement, j'ai essayé ta solution en insérant :

Set plage = Range(CelluleDebut & ":" & CelluleFin).Offset(1)
Set plage = plage.Resize(plage.Rows.Count - 2)
If Intersect(ActiveCell, plage) Is Nothing Then
vReponse = MsgBox("Cette instruction n'est pas disponible", vbOKOnly,
"Désolé")
Exit Sub
End If

en début de macro.
Cela ne fonctionne pas, la première ligne appelle "une erreur d'exécution
1004 La méthode "Range" de l'objet '_Global a échoué".
Erreur de ma part dans l'insertion des lignes ou autre erreur?
Merci à toi
Christian



Publicité
Poster une réponse
Anonyme