OVH Cloud OVH Cloud

Application.CutCopyMode impossible à bouger !

4 réponses
Avatar
Philippe
Bonjour,

Je dispose d'une feuille qui a une macro évenementielle. En gros, quand je
change de cellule, ma colonne et ma ligne de ma nouvelle cellule change de
couleur afin d'aider l'utilisateur à se réperer.
Problème à résoudre : je ne peux plus utiliser le copier/coller apres un
code VBA (le presse-papier se vide)

J'ai déjà fait la moitié du chemin en utilisant "GetFromClipboard" &
"PutinClipboard", je reconstitue le presse-papier.

Mais :

ma cellule ne scintille plus (ie le scintillement de la cellule que l'on
vient de copier)=> j'ai essayé "Application.CutCopyMode=Xlcopy" mais même si
cette ligne ne retourne aucune erreur, mon mode CutCopy ne change pas

Savez-vous pourquoi, ce parametre est impossible à bouger ?
Comme j'ai déjà vu ce code sur certains sites, cela proviendrait-il de mes
paramètres persos ? Avez-vous la solution ?

Merci d'avance à mes sauveurs.

Philippe.

4 réponses

Avatar
michdenis
Bonjour Philippe,

Tu peux utiliser ceci pour résoudre ta difficulté pour une feulle donnée.

Dans la dite feuille, tu ajoutes dans son module, la procédure suivante
Pour ce qui est de la couleur retenue, je te fais confiance !

Dans le ThisWorkbook de ton classeur :

Remplace "Feuil1" par le codename de ta feuille
'--------------------------
Private Sub Workbook_Open()
Feuil1.Worksheet_Activate
End Sub
'--------------------------

'Déclaration de cette variable dans le haut du module feuille
Public Adr As String
'------------------------------
Sub Worksheet_Activate()

If TypeName(Selection) = "Range" Then
Adr = Selection.Address
Else
Adr = ActiveCell.Address
End If

End Sub
'------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim oK As Boolean
If Application.CutCopyMode = xlCopy Then
oK = True
End If
Me.Cells.Interior.ColorIndex = xlNone
Target.EntireRow.Interior.ColorIndex = 8
Target.EntireColumn.Interior.ColorIndex = 8

If oK = True Then
Range(Adr).Copy
oK = False
Else
Adr = Selection.Address
End If
End Sub
'------------------------------------------


Salutations!




"Philippe" a écrit dans le message de news:

Bonjour,

Je dispose d'une feuille qui a une macro évenementielle. En gros, quand je
change de cellule, ma colonne et ma ligne de ma nouvelle cellule change de
couleur afin d'aider l'utilisateur à se réperer.
Problème à résoudre : je ne peux plus utiliser le copier/coller apres un
code VBA (le presse-papier se vide)

J'ai déjà fait la moitié du chemin en utilisant "GetFromClipboard" &
"PutinClipboard", je reconstitue le presse-papier.

Mais :

ma cellule ne scintille plus (ie le scintillement de la cellule que l'on
vient de copier)=> j'ai essayé "Application.CutCopyMode=Xlcopy" mais même si
cette ligne ne retourne aucune erreur, mon mode CutCopy ne change pas

Savez-vous pourquoi, ce parametre est impossible à bouger ?
Comme j'ai déjà vu ce code sur certains sites, cela proviendrait-il de mes
paramètres persos ? Avez-vous la solution ?

Merci d'avance à mes sauveurs.

Philippe.
Avatar
michdenis
Il serait préférable d'utiliser l'événement "Activate" du ThisWorkbook plutôt que "Open" pour ce bout de code.

Private Sub Workbook_Activate()
Feuil1.Worksheet_Activate
End Sub

Salutations!



"michdenis" a écrit dans le message de news:
Bonjour Philippe,

Tu peux utiliser ceci pour résoudre ta difficulté pour une feulle donnée.

Dans la dite feuille, tu ajoutes dans son module, la procédure suivante
Pour ce qui est de la couleur retenue, je te fais confiance !

Dans le ThisWorkbook de ton classeur :

Remplace "Feuil1" par le codename de ta feuille
'--------------------------
Private Sub Workbook_Open()
Feuil1.Worksheet_Activate
End Sub
'--------------------------

'Déclaration de cette variable dans le haut du module feuille
Public Adr As String
'------------------------------
Sub Worksheet_Activate()

If TypeName(Selection) = "Range" Then
Adr = Selection.Address
Else
Adr = ActiveCell.Address
End If

End Sub
'------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim oK As Boolean
If Application.CutCopyMode = xlCopy Then
oK = True
End If
Me.Cells.Interior.ColorIndex = xlNone
Target.EntireRow.Interior.ColorIndex = 8
Target.EntireColumn.Interior.ColorIndex = 8

If oK = True Then
Range(Adr).Copy
oK = False
Else
Adr = Selection.Address
End If
End Sub
'------------------------------------------


Salutations!




"Philippe" a écrit dans le message de news:

Bonjour,

Je dispose d'une feuille qui a une macro évenementielle. En gros, quand je
change de cellule, ma colonne et ma ligne de ma nouvelle cellule change de
couleur afin d'aider l'utilisateur à se réperer.
Problème à résoudre : je ne peux plus utiliser le copier/coller apres un
code VBA (le presse-papier se vide)

J'ai déjà fait la moitié du chemin en utilisant "GetFromClipboard" &
"PutinClipboard", je reconstitue le presse-papier.

Mais :

ma cellule ne scintille plus (ie le scintillement de la cellule que l'on
vient de copier)=> j'ai essayé "Application.CutCopyMode=Xlcopy" mais même si
cette ligne ne retourne aucune erreur, mon mode CutCopy ne change pas

Savez-vous pourquoi, ce parametre est impossible à bouger ?
Comme j'ai déjà vu ce code sur certains sites, cela proviendrait-il de mes
paramètres persos ? Avez-vous la solution ?

Merci d'avance à mes sauveurs.

Philippe.
Avatar
Alain CROS
Bonjour.

Private Declare Function OpenClipboard& Lib "user32" _
(ByVal hwnd&)
Private Declare Function CloseClipboard& Lib "user32" ()

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
OpenClipboard 0&
'
' Le code initial ici
'
CloseClipboard
End Sub

Alain CROS

"Philippe" a écrit dans le message de news:

| Bonjour,
|
| Je dispose d'une feuille qui a une macro évenementielle. En gros, quand je
| change de cellule, ma colonne et ma ligne de ma nouvelle cellule change de
| couleur afin d'aider l'utilisateur à se réperer.
| Problème à résoudre : je ne peux plus utiliser le copier/coller apres un
| code VBA (le presse-papier se vide)
|
| J'ai déjà fait la moitié du chemin en utilisant "GetFromClipboard" &
| "PutinClipboard", je reconstitue le presse-papier.
|
| Mais :
|
| ma cellule ne scintille plus (ie le scintillement de la cellule que l'on
| vient de copier)=> j'ai essayé "Application.CutCopyMode=Xlcopy" mais même si
| cette ligne ne retourne aucune erreur, mon mode CutCopy ne change pas
|
| Savez-vous pourquoi, ce parametre est impossible à bouger ?
| Comme j'ai déjà vu ce code sur certains sites, cela proviendrait-il de mes
| paramètres persos ? Avez-vous la solution ?
|
| Merci d'avance à mes sauveurs.
|
| Philippe.
|
|
Avatar
michdenis
Bonjour Alain,

Sauf pour le scintillement... c'est très bien. ;-)

Merci.


Salutations!



"Alain CROS" a écrit dans le message de news: %23%
Bonjour.

Private Declare Function OpenClipboard& Lib "user32" _
(ByVal hwnd&)
Private Declare Function CloseClipboard& Lib "user32" ()

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
OpenClipboard 0&
'
' Le code initial ici
'
CloseClipboard
End Sub

Alain CROS

"Philippe" a écrit dans le message de news:

| Bonjour,
|
| Je dispose d'une feuille qui a une macro évenementielle. En gros, quand je
| change de cellule, ma colonne et ma ligne de ma nouvelle cellule change de
| couleur afin d'aider l'utilisateur à se réperer.
| Problème à résoudre : je ne peux plus utiliser le copier/coller apres un
| code VBA (le presse-papier se vide)
|
| J'ai déjà fait la moitié du chemin en utilisant "GetFromClipboard" &
| "PutinClipboard", je reconstitue le presse-papier.
|
| Mais :
|
| ma cellule ne scintille plus (ie le scintillement de la cellule que l'on
| vient de copier)=> j'ai essayé "Application.CutCopyMode=Xlcopy" mais même si
| cette ligne ne retourne aucune erreur, mon mode CutCopy ne change pas
|
| Savez-vous pourquoi, ce parametre est impossible à bouger ?
| Comme j'ai déjà vu ce code sur certains sites, cela proviendrait-il de mes
| paramètres persos ? Avez-vous la solution ?
|
| Merci d'avance à mes sauveurs.
|
| Philippe.
|
|