collage qui coince si la feuille est protégée [VBA XL2K]
7 réponses
J
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True
je souhaite permettre de copier une ligne et de la coller là où met son
curseur.
Ex :
l'utilisateur sélectionne la ligne 20, à la main, puis insère son
curseur n'importe où dans une autre ligne et actionne un code qui colle
la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante
sinon : Erreur 1004.
Sub colleLigne()
With ActiveSheet
.Unprotect
ActiveCell.EntireRow.PasteSpecial
Application.CutCopyMode = False
End With
End Sub
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
isabelle
salut J@@,
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet .Unprotect Set x = Rows(Selection.Row) Set y = Application.InputBox(prompt:="Sélectionner une cellule de la colonne A pour coller la ligne", Type:=8) x.Copy y Application.CutCopyMode = False .Protect End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
salut J@@,
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet
.Unprotect
Set x = Rows(Selection.Row)
Set y = Application.InputBox(prompt:="Sélectionner une cellule de la
colonne A pour coller la ligne", Type:=8)
x.Copy y
Application.CutCopyMode = False
.Protect
End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True
je souhaite permettre de copier une ligne et de la coller là où met
son curseur.
Ex :
l'utilisateur sélectionne la ligne 20, à la main, puis insère son
curseur n'importe où dans une autre ligne et actionne un code qui
colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante
sinon : Erreur 1004.
Sub colleLigne()
With ActiveSheet
.Unprotect
ActiveCell.EntireRow.PasteSpecial
Application.CutCopyMode = False
End With
End Sub
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet .Unprotect Set x = Rows(Selection.Row) Set y = Application.InputBox(prompt:="Sélectionner une cellule de la colonne A pour coller la ligne", Type:=8) x.Copy y Application.CutCopyMode = False .Protect End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
michdenis
Bonjour,
Tu peux aussi utiliser ceci :
A ) si la feuille a été protégée en utilisant le paramètre UserInterfaceOnly:=True Tu n'as nul besoin de déprotéger la feuille pour exécuter une macro sur cette feuille.
B ) La petite procédure suivante va coller ce qui est dans le presse-papier à partir de la colonne 1 de la cellule active sur la feuille active. Si tu veux coller une ligne entière, cela ne peut se faire que si c'est fait à partir de la colonne 1, chaque ligne ayant le même nombre de colonnes.
C ) If Application.CutCopyMode > 0 Then s'assure que l'opération "Paste" est disponible.
'-------------------------------------- Sub colleLigne() If Application.CutCopyMode > 0 Then With ActiveCell .Offset(, -(ActiveCell.Column - 1)).PasteSpecial Application.CutCopyMode = False End With End If End Sub '--------------------------------------
MichD -------------------------------------------- "J@@" a écrit dans le message de groupe de discussion : ii2n8o$3lj$
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
Bonjour,
Tu peux aussi utiliser ceci :
A ) si la feuille a été protégée en utilisant le paramètre UserInterfaceOnly:=True
Tu n'as nul besoin de déprotéger la feuille pour exécuter une macro sur cette
feuille.
B ) La petite procédure suivante va coller ce qui est dans le presse-papier à partir
de la colonne 1 de la cellule active sur la feuille active. Si tu veux coller une
ligne entière, cela ne peut se faire que si c'est fait à partir de la colonne 1,
chaque ligne ayant le même nombre de colonnes.
C ) If Application.CutCopyMode > 0 Then s'assure que l'opération "Paste" est
disponible.
'--------------------------------------
Sub colleLigne()
If Application.CutCopyMode > 0 Then
With ActiveCell
.Offset(, -(ActiveCell.Column - 1)).PasteSpecial
Application.CutCopyMode = False
End With
End If
End Sub
'--------------------------------------
MichD
--------------------------------------------
"J@@" a écrit dans le message de groupe de discussion : ii2n8o$3lj$1@speranza.aioe.org...
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True
je souhaite permettre de copier une ligne et de la coller là où met son
curseur.
Ex :
l'utilisateur sélectionne la ligne 20, à la main, puis insère son
curseur n'importe où dans une autre ligne et actionne un code qui colle
la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante
sinon : Erreur 1004.
Sub colleLigne()
With ActiveSheet
.Unprotect
ActiveCell.EntireRow.PasteSpecial
Application.CutCopyMode = False
End With
End Sub
A ) si la feuille a été protégée en utilisant le paramètre UserInterfaceOnly:=True Tu n'as nul besoin de déprotéger la feuille pour exécuter une macro sur cette feuille.
B ) La petite procédure suivante va coller ce qui est dans le presse-papier à partir de la colonne 1 de la cellule active sur la feuille active. Si tu veux coller une ligne entière, cela ne peut se faire que si c'est fait à partir de la colonne 1, chaque ligne ayant le même nombre de colonnes.
C ) If Application.CutCopyMode > 0 Then s'assure que l'opération "Paste" est disponible.
'-------------------------------------- Sub colleLigne() If Application.CutCopyMode > 0 Then With ActiveCell .Offset(, -(ActiveCell.Column - 1)).PasteSpecial Application.CutCopyMode = False End With End If End Sub '--------------------------------------
MichD -------------------------------------------- "J@@" a écrit dans le message de groupe de discussion : ii2n8o$3lj$
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
J
Bonjour Isabelle et merci, cela fonctionne bien. En fait je pensais utiliser le menu contextuel pour lancer l'action et coller sur la dernière ligne vide.
Je coince pour modifier la ligne suivante : Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)
Merci @+ J@@
Le 29/01/2011 19:30, isabelle a écrit :
salut J@@,
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet .Unprotect Set x = Rows(Selection.Row) Set y = Application.InputBox(prompt:="Sélectionner une cellule de la colonne A pour coller la ligne", Type:=8) x.Copy y Application.CutCopyMode = False .Protect End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
Bonjour Isabelle
et merci, cela fonctionne bien.
En fait je pensais utiliser le menu contextuel pour lancer l'action et
coller sur la dernière ligne vide.
Je coince pour modifier la ligne suivante :
Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)
Merci
@+
J@@
Le 29/01/2011 19:30, isabelle a écrit :
salut J@@,
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet
.Unprotect
Set x = Rows(Selection.Row)
Set y = Application.InputBox(prompt:="Sélectionner une cellule de la
colonne A pour coller la ligne", Type:=8)
x.Copy y
Application.CutCopyMode = False
.Protect
End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True
je souhaite permettre de copier une ligne et de la coller là où met
son curseur.
Ex :
l'utilisateur sélectionne la ligne 20, à la main, puis insère son
curseur n'importe où dans une autre ligne et actionne un code qui
colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante
sinon : Erreur 1004.
Sub colleLigne()
With ActiveSheet
.Unprotect
ActiveCell.EntireRow.PasteSpecial
Application.CutCopyMode = False
End With
End Sub
Bonjour Isabelle et merci, cela fonctionne bien. En fait je pensais utiliser le menu contextuel pour lancer l'action et coller sur la dernière ligne vide.
Je coince pour modifier la ligne suivante : Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)
Merci @+ J@@
Le 29/01/2011 19:30, isabelle a écrit :
salut J@@,
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet .Unprotect Set x = Rows(Selection.Row) Set y = Application.InputBox(prompt:="Sélectionner une cellule de la colonne A pour coller la ligne", Type:=8) x.Copy y Application.CutCopyMode = False .Protect End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
J
Bonjour michdenis merci pour ton aide,
quand la feuille est déprotégée, le code fonctionne,
mais pas quand la feuille est protégée (dans la feuille j'ai le code marque ligne de Gaetan Mourmant s'achevant par une protection avec UserInterfaceOnly:=True Dans ce cas le code (testé en pas à pas) passe à la fin sans coller If Application.CutCopyMode> 0 Then End if
Que dois-je faire ? merci @+ J@@
Le 30/01/2011 01:53, michdenis a écrit :
Bonjour,
Tu peux aussi utiliser ceci :
A ) si la feuille a été protégée en utilisant le paramètre UserInterfaceOnly:=True Tu n'as nul besoin de déprotéger la feuille pour exécuter une macro sur cette feuille.
B ) La petite procédure suivante va coller ce qui est dans le presse-papier à partir de la colonne 1 de la cellule active sur la feuille active. Si tu veux coller une ligne entière, cela ne peut se faire que si c'est fait à partir de la colonne 1, chaque ligne ayant le même nombre de colonnes.
C ) If Application.CutCopyMode> 0 Then s'assure que l'opération "Paste" est disponible.
'-------------------------------------- Sub colleLigne() If Application.CutCopyMode> 0 Then With ActiveCell .Offset(, -(ActiveCell.Column - 1)).PasteSpecial Application.CutCopyMode = False End With End If End Sub '--------------------------------------
MichD -------------------------------------------- "J@@" a écrit dans le message de groupe de discussion : ii2n8o$3lj$
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
Bonjour michdenis
merci pour ton aide,
quand la feuille est déprotégée, le code fonctionne,
mais pas quand la feuille est protégée (dans la feuille j'ai le code
marque ligne de Gaetan Mourmant s'achevant par une protection avec
UserInterfaceOnly:=True
Dans ce cas le code (testé en pas à pas) passe à la fin sans coller
If Application.CutCopyMode> 0 Then
End if
Que dois-je faire ?
merci
@+
J@@
Le 30/01/2011 01:53, michdenis a écrit :
Bonjour,
Tu peux aussi utiliser ceci :
A ) si la feuille a été protégée en utilisant le paramètre UserInterfaceOnly:=True
Tu n'as nul besoin de déprotéger la feuille pour exécuter une macro sur cette
feuille.
B ) La petite procédure suivante va coller ce qui est dans le presse-papier à partir
de la colonne 1 de la cellule active sur la feuille active. Si tu veux coller une
ligne entière, cela ne peut se faire que si c'est fait à partir de la colonne 1,
chaque ligne ayant le même nombre de colonnes.
C ) If Application.CutCopyMode> 0 Then s'assure que l'opération "Paste" est
disponible.
'--------------------------------------
Sub colleLigne()
If Application.CutCopyMode> 0 Then
With ActiveCell
.Offset(, -(ActiveCell.Column - 1)).PasteSpecial
Application.CutCopyMode = False
End With
End If
End Sub
'--------------------------------------
MichD
--------------------------------------------
"J@@" a écrit dans le message de groupe de discussion : ii2n8o$3lj$1@speranza.aioe.org...
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True
je souhaite permettre de copier une ligne et de la coller là où met son
curseur.
Ex :
l'utilisateur sélectionne la ligne 20, à la main, puis insère son
curseur n'importe où dans une autre ligne et actionne un code qui colle
la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante
sinon : Erreur 1004.
Sub colleLigne()
With ActiveSheet
.Unprotect
ActiveCell.EntireRow.PasteSpecial
Application.CutCopyMode = False
End With
End Sub
quand la feuille est déprotégée, le code fonctionne,
mais pas quand la feuille est protégée (dans la feuille j'ai le code marque ligne de Gaetan Mourmant s'achevant par une protection avec UserInterfaceOnly:=True Dans ce cas le code (testé en pas à pas) passe à la fin sans coller If Application.CutCopyMode> 0 Then End if
Que dois-je faire ? merci @+ J@@
Le 30/01/2011 01:53, michdenis a écrit :
Bonjour,
Tu peux aussi utiliser ceci :
A ) si la feuille a été protégée en utilisant le paramètre UserInterfaceOnly:=True Tu n'as nul besoin de déprotéger la feuille pour exécuter une macro sur cette feuille.
B ) La petite procédure suivante va coller ce qui est dans le presse-papier à partir de la colonne 1 de la cellule active sur la feuille active. Si tu veux coller une ligne entière, cela ne peut se faire que si c'est fait à partir de la colonne 1, chaque ligne ayant le même nombre de colonnes.
C ) If Application.CutCopyMode> 0 Then s'assure que l'opération "Paste" est disponible.
'-------------------------------------- Sub colleLigne() If Application.CutCopyMode> 0 Then With ActiveCell .Offset(, -(ActiveCell.Column - 1)).PasteSpecial Application.CutCopyMode = False End With End If End Sub '--------------------------------------
MichD -------------------------------------------- "J@@" a écrit dans le message de groupe de discussion : ii2n8o$3lj$
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
J
Bon voila ce qui va : Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)(2)
Me reste à intégrer cela dans le menu contextuel @+ J@@
Le 30/01/2011 07:15, J@@ a écrit :
Bonjour Isabelle et merci, cela fonctionne bien. En fait je pensais utiliser le menu contextuel pour lancer l'action et coller sur la dernière ligne vide.
Je coince pour modifier la ligne suivante : Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)
Merci @+ J@@
Le 29/01/2011 19:30, isabelle a écrit :
salut J@@,
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet .Unprotect Set x = Rows(Selection.Row) Set y = Application.InputBox(prompt:="Sélectionner une cellule de la colonne A pour coller la ligne", Type:=8) x.Copy y Application.CutCopyMode = False .Protect End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
Bon voila ce qui va :
Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)(2)
Me reste à intégrer cela dans le menu contextuel
@+
J@@
Le 30/01/2011 07:15, J@@ a écrit :
Bonjour Isabelle
et merci, cela fonctionne bien.
En fait je pensais utiliser le menu contextuel pour lancer l'action et
coller sur la dernière ligne vide.
Je coince pour modifier la ligne suivante :
Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)
Merci
@+
J@@
Le 29/01/2011 19:30, isabelle a écrit :
salut J@@,
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet
.Unprotect
Set x = Rows(Selection.Row)
Set y = Application.InputBox(prompt:="Sélectionner une cellule de la
colonne A pour coller la ligne", Type:=8)
x.Copy y
Application.CutCopyMode = False
.Protect
End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True
je souhaite permettre de copier une ligne et de la coller là où met
son curseur.
Ex :
l'utilisateur sélectionne la ligne 20, à la main, puis insère son
curseur n'importe où dans une autre ligne et actionne un code qui
colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante
sinon : Erreur 1004.
Sub colleLigne()
With ActiveSheet
.Unprotect
ActiveCell.EntireRow.PasteSpecial
Application.CutCopyMode = False
End With
End Sub
Bon voila ce qui va : Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)(2)
Me reste à intégrer cela dans le menu contextuel @+ J@@
Le 30/01/2011 07:15, J@@ a écrit :
Bonjour Isabelle et merci, cela fonctionne bien. En fait je pensais utiliser le menu contextuel pour lancer l'action et coller sur la dernière ligne vide.
Je coince pour modifier la ligne suivante : Set y = Cells(Rows.Count, ActiveCell.Column).End(xlUp)
Merci @+ J@@
Le 29/01/2011 19:30, isabelle a écrit :
salut J@@,
je ne sais pas d'où provient le copy mais à tout hasard,
With ActiveSheet .Unprotect Set x = Rows(Selection.Row) Set y = Application.InputBox(prompt:="Sélectionner une cellule de la colonne A pour coller la ligne", Type:=8) x.Copy y Application.CutCopyMode = False .Protect End With
isabelle
Le 2011-01-29 22:51, J@@ a écrit :
Bonjour à tous (Excel 2000)
Dans une feuille protégée par .Protect UserInterfaceOnly:=True je souhaite permettre de copier une ligne et de la coller là où met son curseur. Ex : l'utilisateur sélectionne la ligne 20, à la main, puis insère son curseur n'importe où dans une autre ligne et actionne un code qui colle la ligne.
Le code suivant fonctionne si la feuille n'est *pas* protégée, plante sinon : Erreur 1004.
Sub colleLigne() With ActiveSheet .Unprotect ActiveCell.EntireRow.PasteSpecial Application.CutCopyMode = False End With End Sub
Que faire, SVP, Merci.
cordialement J@@
michdenis
Un petit fichier exemple : http://cjoint.com/?0bFwSsmCMAS