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

gestion du multi-colonnes pour utiliser un userform

3 réponses
Avatar
zebulion
Bonjour à toutes et tous
Dans une feuille j'ai plusieurs colonnes où je dois saisir des dates.
J'utilise la méthode du calendrier windows de la feuille "
CalendrierMicrosoftTableur1Date"
trouvé dans http://boisgontierjacques.free.fr/
http://boisgontierjacques.free.fr/fichiers/CalendrierTableur.xls

Ca marche super bien lorsque je n'ai qu'une plage de cellules ou appliquer
la baguette magique , un grand merci à JB!!!
Cependant, lorsque je veux appliquer sur plusieurs colonnes, je n'ai droit
qu'à " - " comme séparateur de liste sinon je me fais huer lors de la
compile.
Et lorsque j'utilise ce séparateur, là je me fais insulter pour
"incompatibilité de type"

voici donc ce que j'utilise:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([m2:m1101], Target) Is Nothing And Target.Count = 1 Then
<========== ça marche très bien
' If Not Intersect([m2:m1101] - [p2:p1101], Target) Is Nothing And
Target.Count = 1 Then <========== ça marche très mal avec - ou ne veut
rien d'autre que -
If EstOuvertUF("F_calendar") Then Unload F_calendar
F_calendar.Show
End If
End Sub

Function EstOuvertUF(nom)
EstOuvertUF = False
For Each i In UserForms
If UCase(i.Name) = UCase(nom) Then EstOuvertUF = True
Next i
End Function


J'ai peut-être trouvé une piste dans l'aide vba, mais je ne sais pas trop
comme l'adapter (si c'est possible de l'utiliser dans mon cas)
'''===================================================================='''
'Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
'Worksheets("sheet1").Activate
'Set r1 = Range("M2:M1101")
'Set r2 = Range("P2:P1101")
'Set myMultiAreaRange = Union(r1, r2)
'myMultiAreaRange.Select
'''===================================================================='''


Merci d'avance pour vos idées et votre aide

Cordialement
Philippe

3 réponses

Avatar
JB
Bonjour,

If Not Intersect(Range("m2:m1101,p2:p1101"), Target) Is Nothing And
Target.Count = 1 Then


JB
On 8 juil, 00:29, "zebulion" <zebulion(supprimer-ceci)@free.fr> wrote:
Bonjour à toutes et tous
Dans une feuille j'ai plusieurs colonnes où je dois saisir des dates.
J'utilise la méthode du calendrier windows de la feuille  "
CalendrierMicrosoftTableur1Date"
trouvé danshttp://boisgontierjacques.free.fr/http://boisgontierjacques. free.fr/fichiers/CalendrierTableur.xls

Ca marche super bien lorsque je n'ai qu'une plage de cellules ou applique r
la baguette magique , un grand merci à JB!!!
Cependant, lorsque je veux appliquer sur plusieurs colonnes, je n'ai droi t
qu'à " - " comme séparateur de liste sinon je me fais huer lors de la
compile.
Et lorsque j'utilise ce séparateur, là je me fais insulter pour
"incompatibilité de type"

voici donc ce que j'utilise:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
   If Not Intersect([m2:m1101], Target) Is Nothing And Target.Count = 1 Then
<========== ça marche très bien
   '  If Not Intersect([m2:m1101] - [p2:p1101], Target) Is Nothing And
Target.Count = 1 Then    <========== ça march e très mal avec - ou ne veut
rien d'autre que -
    If EstOuvertUF("F_calendar") Then Unload F_calendar
    F_calendar.Show
  End If
End Sub

Function EstOuvertUF(nom)
  EstOuvertUF = False
  For Each i In UserForms
    If UCase(i.Name) = UCase(nom) Then EstOuvertUF = True
  Next i
End Function

J'ai peut-être trouvé une piste dans l'aide vba, mais je ne sais pas trop
comme l'adapter (si c'est possible de l'utiliser dans mon cas)
'''======================= ========================= ===================='''
'Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
'Worksheets("sheet1").Activate
'Set r1 = Range("M2:M1101")
'Set r2 = Range("P2:P1101")
'Set myMultiAreaRange = Union(r1, r2)
'myMultiAreaRange.Select
'''======================= ========================= ===================='''

Merci d'avance pour vos idées et votre aide

Cordialement
Philippe


Avatar
zebulion
Bonjour,
Super! Ca marche "comme dans mes rêves"
Merci
Au plaisir
Cordialement,
Philippe

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

If Not Intersect(Range("m2:m1101,p2:p1101"), Target) Is Nothing And
Target.Count = 1 Then


JB
On 8 juil, 00:29, "zebulion" <zebulion(supprimer-ceci)@free.fr> wrote:
Bonjour à toutes et tous
Dans une feuille j'ai plusieurs colonnes où je dois saisir des dates.
J'utilise la méthode du calendrier windows de la feuille "
CalendrierMicrosoftTableur1Date"
trouvé
danshttp://boisgontierjacques.free.fr/http://boisgontierjacques.free.fr/fichiers/CalendrierTableur.xls

Ca marche super bien lorsque je n'ai qu'une plage de cellules ou appliquer
la baguette magique , un grand merci à JB!!!
Cependant, lorsque je veux appliquer sur plusieurs colonnes, je n'ai droit
qu'à " - " comme séparateur de liste sinon je me fais huer lors de la
compile.
Et lorsque j'utilise ce séparateur, là je me fais insulter pour
"incompatibilité de type"

voici donc ce que j'utilise:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([m2:m1101], Target) Is Nothing And Target.Count = 1 Then
<========== ça marche très bien
' If Not Intersect([m2:m1101] - [p2:p1101], Target) Is Nothing And
Target.Count = 1 Then <========== ça marche très mal avec - ou ne veut
rien d'autre que -
If EstOuvertUF("F_calendar") Then Unload F_calendar
F_calendar.Show
End If
End Sub

Function EstOuvertUF(nom)
EstOuvertUF = False
For Each i In UserForms
If UCase(i.Name) = UCase(nom) Then EstOuvertUF = True
Next i
End Function

J'ai peut-être trouvé une piste dans l'aide vba, mais je ne sais pas trop
comme l'adapter (si c'est possible de l'utiliser dans mon cas)
'''===================================================================='''
'Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
'Worksheets("sheet1").Activate
'Set r1 = Range("M2:M1101")
'Set r2 = Range("P2:P1101")
'Set myMultiAreaRange = Union(r1, r2)
'myMultiAreaRange.Select
'''===================================================================='''

Merci d'avance pour vos idées et votre aide

Cordialement
Philippe


Avatar
zebulion
Re bonjour bonsoir

En fait, j'ai quand même un petit pb: je contrôle la date saisie par une
validation date: si < à la date de B3 je bloque en signalant qu'on ne peut
être remboursé avant d'avoir dépensé (cas d'une consultation médicale:
difficile d'êtrer remboursé par la Sécu avant d'avoir consulté...)
L'utilisation de F_calendar force la valeur sans passer par la case
validation.
Par contre, si j'efface le contenu généré et que je saisie directement, la
validation s'effectue normalement.
Y-a-t-il moyen d'activer la validation dans le cas d'utilisation de
F_calendar?
Merci d'avance
Cordialement
Philippe


"zebulion" <zebulion(supprimer-ceci)@free.fr> a écrit dans le message de
news:uaR8TJ$$
Bonjour,
Super! Ca marche "comme dans mes rêves"
Merci
Au plaisir
Cordialement,
Philippe

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

If Not Intersect(Range("m2:m1101,p2:p1101"), Target) Is Nothing And
Target.Count = 1 Then


JB
On 8 juil, 00:29, "zebulion" <zebulion(supprimer-ceci)@free.fr> wrote:
Bonjour à toutes et tous
Dans une feuille j'ai plusieurs colonnes où je dois saisir des dates.
J'utilise la méthode du calendrier windows de la feuille "
CalendrierMicrosoftTableur1Date"
trouvé
danshttp://boisgontierjacques.free.fr/http://boisgontierjacques.free.fr/fichiers/CalendrierTableur.xls

Ca marche super bien lorsque je n'ai qu'une plage de cellules ou
appliquer
la baguette magique , un grand merci à JB!!!
Cependant, lorsque je veux appliquer sur plusieurs colonnes, je n'ai
droit
qu'à " - " comme séparateur de liste sinon je me fais huer lors de la
compile.
Et lorsque j'utilise ce séparateur, là je me fais insulter pour
"incompatibilité de type"

voici donc ce que j'utilise:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect([m2:m1101], Target) Is Nothing And Target.Count = 1 Then
<========== ça marche très bien
' If Not Intersect([m2:m1101] - [p2:p1101], Target) Is Nothing And
Target.Count = 1 Then <========== ça marche très mal avec - ou ne veut
rien d'autre que -
If EstOuvertUF("F_calendar") Then Unload F_calendar
F_calendar.Show
End If
End Sub

Function EstOuvertUF(nom)
EstOuvertUF = False
For Each i In UserForms
If UCase(i.Name) = UCase(nom) Then EstOuvertUF = True
Next i
End Function

J'ai peut-être trouvé une piste dans l'aide vba, mais je ne sais pas trop
comme l'adapter (si c'est possible de l'utiliser dans mon cas)
'''===================================================================='''
'Dim r1 As Range, r2 As Range, myMultiAreaRange As Range
'Worksheets("sheet1").Activate
'Set r1 = Range("M2:M1101")
'Set r2 = Range("P2:P1101")
'Set myMultiAreaRange = Union(r1, r2)
'myMultiAreaRange.Select
'''===================================================================='''

Merci d'avance pour vos idées et votre aide

Cordialement
Philippe