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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
francois.forcet
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 !!!!
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 <=20 Then
Code
End If
Donc pour la macro de suppression de ligne peut être mettre
If Activecel.row >= 10+1 and Activecell.Row <=20-1 Then
Code
End If
Idem pour limiter les colonnes avec Activecell.Column
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
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" a écrit dans 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
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" <ChristiandeBXL@discussions.microsoft.com> a écrit dans
le message de news: 0DFF4604-390A-4966-BD6E-4C3B6FDE77C2@microsoft.com...
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
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" a écrit dans 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
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
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
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
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 !!!!
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
"francois.forcet@wanadoo.fr" 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
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
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" a écrit dans 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
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" <ChristiandeBXL@discussions.microsoft.com> a écrit dans
le message de news: 0C8B4770-0DBA-4AF4-A3C9-FC3ADC4A8B84@microsoft.com...
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
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" a écrit dans 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