Modifier et copier une cellule par clic sur elle
Fermé
Patrick50
-
23 oct. 2015 à 19:44
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 - 3 nov. 2015 à 16:45
via55 Messages postés 14502 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 9 décembre 2024 - 3 nov. 2015 à 16:45
A voir également:
- Modifier et copier une cellule par clic sur elle
- Modifier dns - Guide
- Modifier liste déroulante excel - Guide
- Modifier une story facebook - Guide
- Comment copier une vidéo youtube - Guide
- Comment modifier un pdf - Guide
1 réponse
via55
Messages postés
14502
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
9 décembre 2024
2 737
24 oct. 2015 à 00:43
24 oct. 2015 à 00:43
Bonsoir
Possible par double-clic dans les cellules
Il faut comptabiliser les clics quelque part, dans la macro ci dessous on le fait dans la cellule BP1 de la feuille (à modifier si nécessaire)
Macro à coller dans le worksheet de la feuille concernée (ALT F11 pour ouvrir editeur - double cliquer sur nom de la feuille dans arborescence, copier-coller macro dans la page blanche et fermer l'éditeur
Cdlmnt
Via
Possible par double-clic dans les cellules
Il faut comptabiliser les clics quelque part, dans la macro ci dessous on le fait dans la cellule BP1 de la feuille (à modifier si nécessaire)
Macro à coller dans le worksheet de la feuille concernée (ALT F11 pour ouvrir editeur - double cliquer sur nom de la feuille dans arborescence, copier-coller macro dans la page blanche et fermer l'éditeur
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Target.Row > 1 Or Target.Column > 64 Then Exit Sub If Range("BP1") = 10 Then MsgBox "10 double-clics déjà effectués": Exit Sub Range("BP1") = Range("BP1") + 1 col = 23 + 2 * (Range("BP1") - 1) Cells(20, col) = Target.Value Cells(Target.Row, Target.Column).Select Selection.Interior.Color = 15773696 Selection.Font.ThemeColor = xlThemeColorDark1 End Sub
Cdlmnt
Via
31 oct. 2015 à 17:05
Merci de votre réponse.
Je souhaiterai que la macro s'exécute par simple clic.
Est-il possible de réaliser les opérations suivantes :
Clic sur A1: si le fond de la cellule est blanc et si
le nombre de cellules à fond bleu ciel de la plage A1:A20 est inférieur à 10
alors :
- la valeur affichée dans la cellule A1 est copiée dans la 1ère cellule vide de la plage
B1:B20
- la macro "BleucielA1" est appelée et modifie la mise en forme de A1
Clic sur A1 : si le fond de la cellule est bleu ciel
alors :
- le contenu de la cellule de la plage B1:B20 égal à A1 est effacé
- la macro "BlancA1" est appelée et modifie la mise en forme de A1
Cordialement
31 oct. 2015 à 18:28
Il est inutile de mener la discussion sur 2 fils différents !
Alors en adaptant la macro que Gyrus, que je salue au passage, t'avait fourni sur l'autre fil
Cdlmnt
Via
3 nov. 2015 à 16:09
La macro créée suite à votre réponse ne s'exécute pas et fait se déclencher le message suivant : " Erreur de compilation. Instruction incorrecte dans une procédure". Ou ai-je commis une ou des erreurs ?
Merci
Denis 14
Sub Macro1()
' Macro1 Macro
' Macro enregistrée le 31/10/2015 par Denis
'
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim n As Integer, w As Integer, lg As Integer, ligB As Integer
If Target.Count > 1 Then Exit Sub
If Target.Value = "" Or Target.Column > 1 Or Target.Row > 20 Then Exit Sub
If Target.Interior.Pattern = xlNone Then
For n = 1 To 20
If Range("A" & n).Interior.Color = 15773696 Then w = w + 1
Next
If w < 10 Then
For lg = 20 To 1 Step -1
If Range("B" & lg).Value = "" Then ligB = lg
Next
MiseEnFormeBleu Target, Range("B" & ligB)
End If
Exit Sub
End If
ligB = Columns(2).Find(Target.Value, , , , xlByColumns, xlPrevious).Row
MiseEnFormeBlanc Target, Range("B" & ligB)
End Sub
Sub MiseEnFormeBleu(CelS As Range, CelC As Range)
With CelS
.Interior.Color = 15773696
.Font.ThemeColor = xlThemeColorDark1
CelC = .Value
End With
End Sub
Sub MiseEnFormeBlanc(CelS As Range, CelC As Range)
With CelS
.Interior.Pattern = xlNone
.Font.ColorIndex = xlAutomatic
CelC.ClearContents
End With
End Sub
3 nov. 2015 à 16:45
Enlève la ligne du début qui n'appartient pas à la macro et qui doivent provoquer l'erreur,
Sub Macro1()
' Macro1 Macro
' Macro enregistrée le 31/10/2015 par Denis
Cdlmnt
Via
'