Qui pourrait m'apporter une correction sur un code VBA

flight7218

XLDnaute Nouveau
Bonjour

j'ai le code vba suivant :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 20 And Target.Row < 56 Then
Cells(Target.Row, 3) = 111189 + Target.Row - 21
End If
End Sub

il permet de générer des numéros sur la colonne C en face de chaque cellule de la colonne B par clique sur une cellule de colonne B

je voudrai reprendre la meme instruction mais cette fois entre les colonnes E et F
j'ai ecris donc le code suivant sur un nouveau module vba de la meme feuille :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 5 And Target.Row > 20 And Target.Row < 56 Then
Cells(Target.Row, 6) = 214189 + Target.Row - 21
End If
End Sub

rien ne se passe , je ne trouve pas mon erreur !

merci d'avance pour toute ceux ou celles qui pourrait m'aiguiller
 

Pierrot93

XLDnaute Barbatruc
Re : Qui pourrait m'apporter une correction sur un code VBA

Bonjour,

j'ai ecris donc le code suivant sur un nouveau module vba de la meme feuille :

A noter, dans un même module de feuille, tu ne peux avoir qu'une seule procédure "SelectionChange" :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

bonne journée
@+
 

suistrop

XLDnaute Impliqué
Re : Qui pourrait m'apporter une correction sur un code VBA

Bonjour,

je te conseille de tout mettre dans le meme sub, et normalement ca fonctionne.

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 20 And Target.Row < 56 Then
Cells(Target.Row, 3) = 111189 + Target.Row - 21
End If
If Target.Column = 5 And Target.Row > 20 And Target.Row < 56 Then
Cells(Target.Row, 6) = 214189 + Target.Row - 21
End If
End Sub

Cordialement

Suistrop

Edit : Salut pierrot93!
 
Dernière édition:

mth

XLDnaute Barbatruc
Re : Qui pourrait m'apporter une correction sur un code VBA

Bonjour,

Si je comprends bien tu as écrit deux procédures Worksheet_SelectionChange, il ne peut y en avoir qu'une, il faut que tu gères tes deux conditions dans la même.

Pour le reste ..; quand tu postes du code, pourrais-tu utiliser la balise de code (le signe # qui se trouve au dessus de la fenêtre de message), c'est bien plus lisible ! merci à toi :)

Bonne journée,

mth

Edit: Hello suistrop, Pierrot :) :)
Un peu lente mth !!!
bise,
m
 

Papou-net

XLDnaute Barbatruc
Re : Qui pourrait m'apporter une correction sur un code VBA

Bonjour flight7218,

Pas bien compris l'énoncé, mais, à priori, tu ne peux avoir 2 macros événementielles sur le même feuille : d'ailleurs tu devrais avoir un message d'erreur ?

Il faut écrire les 2 instructions dans le même événement, soit :

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 2 And Target.Row > 20 And Target.Row < 56 Then
  Cells(Target.Row, 3) = 111189 + Target.Row - 21
  Exit Sub
End If
If Target.Column = 5 And Target.Row > 20 And Target.Row < 56 Then
  Cells(Target.Row, 6) = 214189 + Target.Row - 21
End If
End Sub
Espérant avoir répondu.

Cordialement.

Edit : bonjour Pierrot93; suistrop, mth et les autres
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Qui pourrait m'apporter une correction sur un code VBA

Bonjour le fil, bonjour le forum,

Le code ci-dessous doit remplacer le premier:
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column <> 5 Then Exit Sub
If Target.Row < 21 Or Target.Row > 55 Then Exit Sub
Cells(Target.Row, 6) = 214189 + Target.Row - 21
End Sub
Si tu veux combiner les deux :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row < 21 Or Target.Row > 55 Then Exit Sub
Select Case Target.Column
    Case 2, 5
        Cells(Target.Row, 6) = 214189 + Target.Row - 21
End Select
End Sub

[Édition]
Salut à tous ... J'suis pas en avance...
 
Dernière édition:

flight7218

XLDnaute Nouveau
Re : Qui pourrait m'apporter une correction sur un code VBA

En tout je tiens à vous remercier infiniment pour vos intervention ! à present ca marche bien ;)
Vous faites un travail d'aide formidable et tres formateur aupres de ceux qui ont besoin de progresser sous excel / vba !