Utilisation d'une variable

pierre17du

XLDnaute Nouveau
Je suis sur une ComboBox, et pour facilité la modification éventuel du document par des tiers je veux utiliser une variable, sauf qu'il me manque un truc au niveau de la sintaxe:



Private ChoisEmployeDebut As String
'rentrer ici les coordonnes de la première cellule de la colonne employé
ChoisEmployeDebut = AB5
Private ChoisEmployeDebut As String
'rentrer ici les coordonnes de la dernière cellule de la colonne employé
ChoisEmployeFin = AB23



Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

'code pour la selection de nom du personnel
If Not Intersect(Target, Range("&ChoisEmployeDebut:&ChoisEmployeFin")) Is Noting Then
[A1] = Target.Row
[B1] = Target.Column
Cancel = True
UserForm1.Show
End If

End Sub
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Utilisation d'une variable

Bonjour Pierre, bonjour le forum,

Essaie comme ça :
Private ChoisEmployeDebut As String
'rentrer ici les coordonnes de la première cellule de la colonne employé
ChoisEmployeDebut = "AB5"
Private ChoisEmployeDebut As String
'rentrer ici les coordonnes de la dernière cellule de la colonne employé
ChoisEmployeFin = "AB23"



Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)

'code pour la selection de nom du personnel
If Not Intersect(Target, Range(ChoisEmployeDebut & ":" & ChoisEmployeFin)) Is Noting Then

[Édition]
Bonjour Pierrot. Oui tu as raison j'avais même pas vu... Désolé
 

pierre17du

XLDnaute Nouveau
Re : Utilisation d'une variable

merci de a proposition, je l'ai tenté mais j'obtien le même résultat que pour moi:


A vrai dire je n'arrive pes à savoir le type de donnée dans Range, est-ce bien une String?
je n'ai encore rien trouvé à ce sujet pour confirmer.:(
 

Pièces jointes

  • prob.jpg
    prob.jpg
    33.5 KB · Affichages: 73
  • prob.jpg
    prob.jpg
    33.5 KB · Affichages: 80
  • prob.jpg
    prob.jpg
    33.5 KB · Affichages: 79

Robert

XLDnaute Barbatruc
Repose en paix
Re : Utilisation d'une variable

Bonjour les Pierre's, bonjour le forum,

Oui j'avais pas fait attention ! Les définitions des variables doivent être dans la procédure BeforeRightClick. Les déclarations peuvent être en dehors (niveau Module) mais pas les définitions. Essaie comme ça :
Code:
Private ChoisEmployeDebut As String
Private ChoisEmployeDebut As String
 
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
ChoisEmployeDebut = "AB5"
ChoisEmployeFin = "AB23"
If Not Intersect(Target, Range(ChoisEmployeDebut & ":" & ChoisEmployeFin) Is Noting Then
     [A1] = Target.Row
     [B1] = Target.Column
     Cancel = True
     UserForm1.Show
End If
End Sub

ou comme ça:
Code:
Private ChoisEmployeDebut As Range
Private ChoisEmployeDebut As Range
 
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Set ChoisEmployeDebut = Range("AB5")
Set ChoisEmployeFin = Range("AB23")
If Not Intersect(Target, Range(ChoisEmployeDebut ,ChoisEmployeFin) Is Noting Then
     [A1] = Target.Row
     [B1] = Target.Column
     Cancel = True
     UserForm1.Show
End If
End Sub

Mais je comprends pas alors pourquoi utiliser des variables qui correspondent à des adresses en dur ???
 
Dernière édition:

pierre17du

XLDnaute Nouveau
Re : Utilisation d'une variable

Je vais tenter.
Ce fichier va surement étre utilisé par plusieurs personnes différentes, dont un bon nombre ne connnaissent pas la programmation, je voudrais simplifier au mieux les chamgements futurs ( qui, apparemment, ne seront pas nombreux, mais je préfére prendre les devants)
 

pierre17du

XLDnaute Nouveau
Re : Utilisation d'une variable

Bon, grace à toi ça avance un peut, là ( dans les deux cas) il bloque sur :

Code:
If Not Intersect(Target, Range(ChoisEmployeDebut & ":" & ChoisEmployeFin) Is Noting Then
et sur:

Code:
If Not Intersect(Target, Range(ChoisEmployeDebut ,ChoisEmployeFin) Is Noting Then
 

Fo_rum

XLDnaute Accro
Re : Utilisation d'une variable

Bonjour,

avec un autre type de "Déclaration"
Code:
Option Explicit
Const ChoisEmployeDebut = "AB5"
Const ChoisEmployeFin = "AB23"
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
    If Intersect(Target, Range(ChoisEmployeDebut, ChoisEmployeFin)) Is Nothing Then Exit Sub
    [A1] = Target.Row
    [B1] = Target.Column
    UserForm1.Show
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Utilisation d'une variable

Bonjour le fil, bonjour le forum,

Je ne comprends absolument pas pourquoi l'utilisation de variables (ou même de constantes) et pas :
Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("AB5:AB23") Is Nothing Then
 

pierre17du

XLDnaute Nouveau
Re : Utilisation d'une variable

Bonjour
Je vous présente mes excuses pour les bonjours, je n'ai jamais été sur les forums au paravant, et j'étais plus dans une ambiance de chat. désolé.


Bonjour le fil, bonjour le forum,

Je ne comprends absolument pas pourquoi l'utilisation de variables (ou même de constantes) et pas :

Code:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
If Not Intersect(Target, Range("AB5:AB23") Is Nothing Then

C'était effectivement le code que j'avais au début; dans mon ducument j'ai des zones actives avec le clique droit; comme il sera utilisé par des personnes ignorant surement l'existance du VBA, je voulais simplifier au plus les modifications résultant de l'ajout de lignes ou de colones. (si vous voulez mieux vous faire une idée de mon probléme (passé) tchéquez la discution précité (où phlaurent55 m'a bien aidé), et imaginez les difficultés, que qqu ne connaisant rien au VBA, aurait eu à ajouter une ligne)

Mais je viens de tomber sur une solution plus sympat encore sur :Ce lien n'existe plus
qui utilise le gestionaire de nom.

Cordialement. P
 

Discussions similaires

Statistiques des forums

Discussions
312 498
Messages
2 088 996
Membres
104 001
dernier inscrit
dessinbecm