Déclencher une macro incrémentation à modification d'une cellule

  • Initiateur de la discussion Initiateur de la discussion SEI
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

SEI

Guest
Bonsoir à tous,

J'ai un problème pour déclencher une macro d'incrémentation, je souhaite executer cette macro lors de la modification de la cellule qui contient le chiffre de départ de l'incrémentation.

J'ai essayé plusieurs proposition du forum, mais étant novice cela ne fonctionne pas.

Voir le fichier joint.

Merci d'avance pour votre aide
 

Pièces jointes

Re : Déclencher une macro incrémentation à modification d'une cellule

Bonsoir SEI,
voici un exemple en pièce jointe.

Voici également quelques petites explications au passage. Tout d'abord, vous n'avez pas besoin de mettre une macro dans le code d'un onglet même si vous souhaitez que l'action de la macro se réalise sur cet onglet en particulier. Il suffit de sélectionner l'onglet souhaité avec une ligne du type :
Code:
Sheets("1").Select

Ensuite, pour déclencher une macro événementielle, vous devez la placer dans le code du bon onglet, soit l'onglet INDM dans votre cas. En double cliquant sur Feuil2 (INDM) dans VBA, vous retrouverez la macro événementielle.

Il suffit donc de modifier la cellule B5 de l'onglet INDM pour que cette dernière se déclenche.

En espérant vous avoir aidé un petit peu,

Cordialement,

Étienne
 

Pièces jointes

Re : Déclencher une macro incrémentation à modification d'une cellule

Bonsoir SEI, Etienne2323
Dans un module standard :
Code:
[B][COLOR=DarkSlateGray]Sub incrementation(compteur&, sh$)
Dim i&
  With Sheets(sh)
      .Range("G2:G5000").Clear
      For i = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
          If .Cells(i, 1) <> vbNullString Then .Cells(i, 7) = compteur: compteur = compteur + 1
      Next i
  End With
End Sub[/COLOR][/B]

Dans le module de la feuille INDM :
Code:
[B][COLOR=DarkSlateGray]Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count = 1 And Target.Address(0, 0) = "B11" Then incrementation Target.Value, "1"
End Sub[/COLOR][/B]
ROGER2327
#4434


Samedi 28 Haha 138 (Fuite d' Ablou, SQ)
12 Brumaire An CCXIX
2010-W44-2T23:58:18Z
 
Re : Déclencher une macro incrémentation à modification d'une cellule

Etienne2323, ROGER2327

Merci pour votre aide et vos conseils cela me permet de progresser dans l'utilisation des macros.
Je vais utiliser la méthode de ROGER2327 qui correspond plus à ce que je recherche.

J'ai complété la macro de la feuil "INDM" pour que cela fonctionne avec 12 onglets ayant chacun une cellule affectée pour l'incrémentation, cela à l'air de fonctionner.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  If Target.Count = 1 And Target.Address(0, 0) = "B11" Then incrementation Target.Value, "1"
  If Target.Count = 1 And Target.Address(0, 0) = "B12" Then incrementation Target.Value, "2"
  If Target.Count = 1 And Target.Address(0, 0) = "B13" Then incrementation Target.Value, "3"
  If Target.Count = 1 And Target.Address(0, 0) = "B14" Then incrementation Target.Value, "4"
  If Target.Count = 1 And Target.Address(0, 0) = "B15" Then incrementation Target.Value, "5"
  If Target.Count = 1 And Target.Address(0, 0) = "B16" Then incrementation Target.Value, "6"
  If Target.Count = 1 And Target.Address(0, 0) = "B17" Then incrementation Target.Value, "7"
  If Target.Count = 1 And Target.Address(0, 0) = "B18" Then incrementation Target.Value, "8"
  If Target.Count = 1 And Target.Address(0, 0) = "B19" Then incrementation Target.Value, "9"
  If Target.Count = 1 And Target.Address(0, 0) = "B20" Then incrementation Target.Value, "10"
  If Target.Count = 1 And Target.Address(0, 0) = "B21" Then incrementation Target.Value, "11"
  If Target.Count = 1 And Target.Address(0, 0) = "B22" Then incrementation Target.Value, "12"
End Sub

Merci encore pour votre aide
Bien cordialement
 
Re : Déclencher une macro incrémentation à modification d'une cellule

Re...
Solutions alternatives :
Code:
[B][COLOR=DarkSlateGray]Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%
  With [B10]
      For i = 1 To 12
          If Target.Count = 1 And Target.Address(0, 0) = .Offset(i, 0).Address(0, 0) Then incrementation Target.Value, CStr(i)
      Next i
  End With
End Sub[/COLOR][/B]
Code:
[B][COLOR=DarkSlateGray]Private Sub Worksheet_Change(ByVal Target As Range)
Dim i%, oRef()
  oRef = Array(Array("B11", "1"), Array("B12", "2"), Array("B13", "3"), Array("B14", "4"), Array("B15", "5"), _
      Array("B16", "6"), Array("B17", "7"), Array("B18", "8"), Array("B19", "9"), Array("B20", "10"), _
      Array("B21", "11"), Array("B22", "12"))
  For i = 0 To UBound(oRef)
      If Target.Count = 1 And Target.Address(0, 0) = oRef(i)(0) Then incrementation Target.Value, oRef(i)(1): Exit For
  Next i
End Sub[/COLOR][/B]
ROGER2327
#4438


Dimanche 1er As 138 (Nativité de Pantagruel, ST)
13 Brumaire An CCXIX
2010-W44-3T15:42:52Z
 
Re : Déclencher une macro incrémentation à modification d'une cellule

Merci pour les 2 propositions plus simples.

La première fonctionne correctement, par contre la seconde alternative génére un message d'erreur "erreur de compilation - type d'argument ByRef imcompatible" n'étant pas suffisament calé je n'ai pu résoudre le problème.

Encore merci pour les différentes solutions proposées.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour