Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Aide sur un code

10 réponses
Avatar
Guy72
Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et je
souhaiterais avoir la copie de la valeur et du format de la cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy

10 réponses

Avatar
Daniel.C
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et je
souhaiterais avoir la copie de la valeur et du format de la cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy



Avatar
Guy72
Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un cellule
déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et je
souhaiterais avoir la copie de la valeur et du format de la cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy







Avatar
Daniel.C
Avec le code suivant, si la cellule n'est pas vide, la cellule J11 est
sélectionnée :

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un
cellule déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et je
souhaiterais avoir la copie de la valeur et du format de la cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy











Avatar
Guy72
Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Avec le code suivant, si la cellule n'est pas vide, la cellule J11 est
sélectionnée :

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un
cellule déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et je
souhaiterais avoir la copie de la valeur et du format de la cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy















Avatar
Daniel.C
J'ai peut-être mal compris. Si l'utilisateur clique sur une cellule non vide
de la plage J12:T42, je le déplace d'autorité en J11; ça peut être n'importe
quelle cellule. Une autre possibilité est de vérifier qu'il efface une
cellule et de réinjecter le contenu avec un message d'insulte.

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Avec le code suivant, si la cellule n'est pas vide, la cellule J11 est
sélectionnée :

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un
cellule déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et je
souhaiterais avoir la copie de la valeur et du format de la cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> ""
_
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy



















Avatar
Guy72
Non, ce que je voulais c'est que une fois la cellule remplie, on ne puisse
plus la modifier avant la fin de l'exercice.
Soit copier, soit effacée etc..........
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%
J'ai peut-être mal compris. Si l'utilisateur clique sur une cellule non
vide de la plage J12:T42, je le déplace d'autorité en J11; ça peut être
n'importe quelle cellule. Une autre possibilité est de vérifier qu'il
efface une cellule et de réinjecter le contenu avec un message d'insulte.

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Avec le code suivant, si la cellule n'est pas vide, la cellule J11 est
sélectionnée :

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un
cellule déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> ""
_
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et
je souhaiterais avoir la copie de la valeur et du format de la
cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> ""
_
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy























Avatar
Daniel.C
Mais, c'est le cas ?
Daniel
"Guy72" a écrit dans le message de news:

Non, ce que je voulais c'est que une fois la cellule remplie, on ne puisse
plus la modifier avant la fin de l'exercice.
Soit copier, soit effacée etc..........
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%
J'ai peut-être mal compris. Si l'utilisateur clique sur une cellule non
vide de la plage J12:T42, je le déplace d'autorité en J11; ça peut être
n'importe quelle cellule. Une autre possibilité est de vérifier qu'il
efface une cellule et de réinjecter le contenu avec un message d'insulte.

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Avec le code suivant, si la cellule n'est pas vide, la cellule J11 est
sélectionnée :

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un
cellule déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> ""
_
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et
je souhaiterais avoir la copie de la valeur et du format de la
cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <>
"" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy



























Avatar
Guy72
Oui, mais la cellule J11 étant sélectionnée, je peux quand même sélectionner
toutes les autres cellules et quand même les effacées si je ne passe pas par
la sélection d'une des cellules de la plage F16:F38.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%237K$
Mais, c'est le cas ?
Daniel
"Guy72" a écrit dans le message de news:

Non, ce que je voulais c'est que une fois la cellule remplie, on ne
puisse plus la modifier avant la fin de l'exercice.
Soit copier, soit effacée etc..........
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%
J'ai peut-être mal compris. Si l'utilisateur clique sur une cellule non
vide de la plage J12:T42, je le déplace d'autorité en J11; ça peut être
n'importe quelle cellule. Une autre possibilité est de vérifier qu'il
efface une cellule et de réinjecter le contenu avec un message
d'insulte.

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Avec le code suivant, si la cellule n'est pas vide, la cellule J11 est
sélectionnée :

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> ""
_
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un
cellule déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <>
"" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur, et
je souhaiterais avoir la copie de la valeur et du format de la
cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <>
"" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> ""
Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy































Avatar
Daniel.C
Avec la macro suivante, tu peux toujours te positionner sur une cellule vide
de la plage et la remplir; est-ce ce que tu veux ? Il serait aussi plus
efficace de protéger la feuille, car si les macros ne sont pas activées, la
plage n'est plus protégée.

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
ElseIf Not Intersect(Target, [J12:T42]) Is Nothing And Target <> "" Then
[J11].Select
End If
End Sub


--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Oui, mais la cellule J11 étant sélectionnée, je peux quand même
sélectionner
toutes les autres cellules et quand même les effacées si je ne passe pas
par
la sélection d'une des cellules de la plage F16:F38.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%237K$
Mais, c'est le cas ?
Daniel
"Guy72" a écrit dans le message de news:

Non, ce que je voulais c'est que une fois la cellule remplie, on ne
puisse plus la modifier avant la fin de l'exercice.
Soit copier, soit effacée etc..........
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%
J'ai peut-être mal compris. Si l'utilisateur clique sur une cellule non
vide de la plage J12:T42, je le déplace d'autorité en J11; ça peut être
n'importe quelle cellule. Une autre possibilité est de vérifier qu'il
efface une cellule et de réinjecter le contenu avec un message
d'insulte.

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Avec le code suivant, si la cellule n'est pas vide, la cellule J11
est sélectionnée :

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> ""
_
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un
cellule déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <>
"" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> ""
Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur,
et je souhaiterais avoir la copie de la valeur et du format de la
cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <>
"" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> ""
Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy



































Avatar
Guy72
Je vais étudier ça de plus près.
A+
Merci de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%
Avec la macro suivante, tu peux toujours te positionner sur une cellule
vide de la plage et la remplir; est-ce ce que tu veux ? Il serait aussi
plus efficace de protéger la feuille, car si les macros ne sont pas
activées, la plage n'est plus protégée.

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <> "" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
ElseIf Not Intersect(Target, [J12:T42]) Is Nothing And Target <> "" Then
[J11].Select
End If
End Sub


--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Oui, mais la cellule J11 étant sélectionnée, je peux quand même
sélectionner
toutes les autres cellules et quand même les effacées si je ne passe pas
par
la sélection d'une des cellules de la plage F16:F38.
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%237K$
Mais, c'est le cas ?
Daniel
"Guy72" a écrit dans le message de news:

Non, ce que je voulais c'est que une fois la cellule remplie, on ne
puisse plus la modifier avant la fin de l'exercice.
Soit copier, soit effacée etc..........
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de news:
%
J'ai peut-être mal compris. Si l'utilisateur clique sur une cellule
non vide de la plage J12:T42, je le déplace d'autorité en J11; ça peut
être n'importe quelle cellule. Une autre possibilité est de vérifier
qu'il efface une cellule et de réinjecter le contenu avec un message
d'insulte.

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"Daniel.C" a écrit dans le message de news:

Avec le code suivant, si la cellule n'est pas vide, la cellule J11
est sélectionnée :

Public strval As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <>
"" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> "" Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
[J11].Select
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
[J11].Select
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour Daniel
C'est rapide et en plus ça fonctionne sublime.
Dans ce code il y a un morceau du code qui empêche de copier sur un
cellule déjà occupée dans la plage J12:T42.
Est-il possible d'empêcher aussi de l'effacer ?
Merci encore de ton aide
--
Cordialement
Guy
"Daniel.C" a écrit dans le message de
news: eiEd%
Bonjour.
Essaie :

Public strval As String
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value <>
"" _
Then strval = Target.Address

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strval <> ""
Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Range(strval).Copy
Target.PasteSpecial xlPasteValues
Target.PasteSpecial xlPasteFormats
strval = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If
End Sub

--
Cordialement.
Daniel
"Guy72" a écrit dans le message de news:

Bonjour,
Ce code permet de copier coller, mais ça ne colle que la valeur,
et je souhaiterais avoir la copie de la valeur et du format de la
cellule
Que dois-je changer ?
Merci de votre aide.

'Code pour pouvoir copier-coller avec un clic
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count > 1 Then Exit Sub

'Plage ou copier
If Not Intersect(Target, [F16:F38]) Is Nothing And Target.Value
<> "" _
Then strVal = Target.Value

'Plage ou coller
If Not Intersect(Target, [J12:T42]) Is Nothing And strVal <> ""
Then
If Target.Value <> "" Then
MsgBox " Déja occupé"
Exit Sub
Else
Target.Value = strVal
strVal = ""
If Target.Offset(0, 1) <> "" Then
JouerSon1
Target.Offset(0, 1) = ""
Else
JouerSon2
End If
End If
End If

End Sub

--
Cordialement
Guy