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

Macro d'incrémentation de cellules

6 réponses
Avatar
Steve
Bonjour,

Je patauge...
J'ai une feuille de calcul ou j'ai formaté des cellules (E13 , I13, M14,
M16......) en couleur jaune (code 36).
Je voudrais que la cellule (jaune) s'inscrémente d'une unité (+1) si je l'ai
sélectionné, en cliquant sur la cellule G16
ou s'inscrémente d'une unité (-1) en cliquant sur la cellule I16
ou que la valeur reste la même si je clique dans la cellule K16

Merci pour votre aide

6 réponses

Avatar
Pounet95
Bonsoir,
Je n'ai pas tout compris, mais peut-être que pour la première partie,
mémoriser la cellule précédement sélectionnée, ceci pourrait t'aider :

'A mettre dans le module de la feuille

Dim derCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not derCell Is Nothing Then
If Target.Address <> derCell.Address Then
MsgBox "Ancienne = " & derCell.Address & Chr(10) _
& "Nouvelle : " & Target.Address
Set derCell = Target
End If
Else
Set derCell = Target
MsgBox derCell.Address
End If
End Sub

Pour la suite peut-être quelques explications en plus ?
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

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

Bonjour,

Je patauge...
J'ai une feuille de calcul ou j'ai formaté des cellules (E13 , I13, M14,
M16......) en couleur jaune (code 36).
Je voudrais que la cellule (jaune) s'inscrémente d'une unité (+1) si je
l'ai sélectionné, en cliquant sur la cellule G16
ou s'inscrémente d'une unité (-1) en cliquant sur la cellule I16
ou que la valeur reste la même si je clique dans la cellule K16

Merci pour votre aide



Avatar
JB
Bonjour,

http://cjoint.com/?bvqPsNMy0f


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Interior.ColorIndex = 36 And Target.Count = 1 Then
mémo = Target.Address
End If
If Target.Address = "$G$16" Then
If mémo <> "" Then
Range(mémo) = Range(mémo) + 1
mémo = ""
End If
End If
If Target.Address = "$I$16" Then
If mémo <> "" Then
Range(mémo) = Range(mémo) - 1
mémo = ""
End If
End If
End Sub

Cordialement JB
Avatar
Steve
Merci Pounet95 de t'être penché sur mon Pb

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

Bonsoir,
Je n'ai pas tout compris, mais peut-être que pour la première partie,
mémoriser la cellule précédement sélectionnée, ceci pourrait t'aider :

'A mettre dans le module de la feuille

Dim derCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not derCell Is Nothing Then
If Target.Address <> derCell.Address Then
MsgBox "Ancienne = " & derCell.Address & Chr(10) _
& "Nouvelle : " & Target.Address
Set derCell = Target
End If
Else
Set derCell = Target
MsgBox derCell.Address
End If
End Sub

Pour la suite peut-être quelques explications en plus ?
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

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

Bonjour,

Je patauge...
J'ai une feuille de calcul ou j'ai formaté des cellules (E13 , I13, M14,
M16......) en couleur jaune (code 36).
Je voudrais que la cellule (jaune) s'inscrémente d'une unité (+1) si je
l'ai sélectionné, en cliquant sur la cellule G16
ou s'inscrémente d'une unité (-1) en cliquant sur la cellule I16
ou que la valeur reste la même si je clique dans la cellule K16

Merci pour votre aide






Avatar
Steve
Merci JB

J'ai téléchargé ton fichier.
C'est exactement ce que je demandais, mais cela ne fonctionne pas.
Je ne comprend pas pourquoi.

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

Bonjour,

http://cjoint.com/?bvqPsNMy0f


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Interior.ColorIndex = 36 And Target.Count = 1 Then
mémo = Target.Address
End If
If Target.Address = "$G$16" Then
If mémo <> "" Then
Range(mémo) = Range(mémo) + 1
mémo = ""
End If
End If
If Target.Address = "$I$16" Then
If mémo <> "" Then
Range(mémo) = Range(mémo) - 1
mémo = ""
End If
End If
End Sub

Cordialement JB
Avatar
Steve
Excuse moi cela fonctionne, mais j'aurai voulu que la cellule incrémantée
soit toujours sélectionnée pour pouvoir l'incrémenté une nouvelle fois
si besoin, sans avoir à la selectionnée de nouveau.

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

Bonjour,

http://cjoint.com/?bvqPsNMy0f


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Interior.ColorIndex = 36 And Target.Count = 1 Then
mémo = Target.Address
End If
If Target.Address = "$G$16" Then
If mémo <> "" Then
Range(mémo) = Range(mémo) + 1
mémo = ""
End If
End If
If Target.Address = "$I$16" Then
If mémo <> "" Then
Range(mémo) = Range(mémo) - 1
mémo = ""
End If
End If
End Sub

Cordialement JB
Avatar
JB
http://cjoint.com/?bvsUcYH1s2

Dim témoin
Dim mémo
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not témoin Then
témoin = True
If Target.Interior.ColorIndex = 36 And Target.Count = 1 Then
mémo = Target.Address
End If
If Target.Address = "$G$16" Then
If mémo <> "" Then
Range(mémo) = Range(mémo) + 1
Range(mémo).Select
'mémo = ""
End If
End If
If Target.Address = "$I$16" Then
If mémo <> "" Then
Range(mémo) = Range(mémo) - 1
Range(mémo).Select
' mémo = ""
End If
End If
témoin = False
End If
End Sub

JB