collage qui coince si la feuille est protégée [VBA XL2K]

Le
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

Que faire, SVP, Merci.

cordialement
J@@
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
isabelle
Le #23067041
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
Le #23068121
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
Le #23069011
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
Le #23069051
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@@

J
Le #23069241
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
Le #23073291
Un petit fichier exemple : http://cjoint.com/?0bFwSsmCMAS

MichD
--------------------------------------------
J
Le #23073851
Bonjour MichD
excellent
merci
@+
J@@

Le 31/01/2011 11:44, michdenis a écrit :
Un petit fichier exemple : http://cjoint.com/?0bFwSsmCMAS

MichD
--------------------------------------------

Publicité
Poster une réponse
Anonyme