Aide sur un code

Le
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
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
Daniel.C
Le #17454901
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"
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



Guy72
Le #17455101
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" 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"
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







Daniel.C
Le #17456121
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"
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" 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"
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











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

"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"
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" 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"
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















Daniel.C
Le #17456901
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"
Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"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"
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" 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"
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



















Guy72
Le #17457061
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" %
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"
Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"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"
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" 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"
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























Daniel.C
Le #17457261
Mais, c'est le cas ?
Daniel
"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" %
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"
Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"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"
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" 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"
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



























Guy72
Le #17457661
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" %237K$
Mais, c'est le cas ?
Daniel
"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" %
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"
Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"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"
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" 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"
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































Daniel.C
Le #17457761
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"
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" %237K$
Mais, c'est le cas ?
Daniel
"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" %
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"
Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"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"
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" 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"
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



































Guy72
Le #17458081
Je vais étudier ça de plus près.
A+
Merci de ton aide
--
Cordialement
Guy
"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"
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" %237K$
Mais, c'est le cas ?
Daniel
"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" %
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"
Pourquoi il faut que la cellule J11 soit sélectionnée ?
--
Cordialement
Guy

"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"
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" 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"
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







































Publicité
Poster une réponse
Anonyme