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

Probleme avec Ucase

13 réponses
Avatar
BV
Bonjour =E0 tous

je dois renvoyer en VBA un certain nombre d'actions selon les cellules
activ=E9es. Voici ce que j'ai fait jusqu'=E0 pr=E9sent et qui fonctionne
parfaitement :

'd=E9claration de la variable et des conditions
Mavar =3D Target.Address
Select Case UCase(Mavar)

' --------- RETOUR ACCUEIL --------- '
Case Is =3D UCase("$B$4")
Call masquer
Range("A1").Select

ce que j'aimerai c'est, plut=F4t que de saisir la r=E9f=E9rence en relatif,
passer en absolu avec une r=E9f=E9rence de cellule : choix1. J'ai donc
essay=E9 na=EFvement ceci et biens=FBr cela ne marche pas :

'd=E9claration de la variable et des conditions
Mavar =3D Target.name
Select Case UCase(Mavar)

' --------- RETOUR ACCUEIL --------- '
Case Is =3D UCase("choix1")
Call masquer
Range("A1").Select

pourriez-vous me donner une piste svp ?

Merci d'avance

BV

10 réponses

1 2
Avatar
FFO
Salut à toi

Que veux tu dire par :

passer en absolu avec une référence de cellule : choix1 ????

Tu peux mettre :

Case Is = UCase(Range("A1"))

Et en cellule A1 de la feuille active : $B$4 ou autre

Ce qui revient à :

Case Is = UCase("$B$4")

Mais je ne sais pas si celà correspond à ton attente

Merci de préciser
Avatar
gmlsteph
Bonjour,

Le second Ucase n'était pas indispensable mais le devient si choix il
y a
si choix est une variable ..pas mettre de guillemets
Peux tu préciser comment tu envisages que soit fait ce choix?
Le début et fin du bout de code serait urtile pour le
contexte ..variables ..private sub ..sur quel évennement...etc

--
lSteph


On 9 juin, 15:33, BV wrote:
Bonjour à tous

je dois renvoyer en VBA un certain nombre d'actions selon les cellules
activées. Voici ce que j'ai fait jusqu'à présent et qui fonctionne
parfaitement :

'déclaration de la variable et des conditions
Mavar = Target.Address
Select Case UCase(Mavar)

' --------- RETOUR ACCUEIL    --------- '
Case Is = UCase("$B$4")
Call masquer
Range("A1").Select

ce que j'aimerai c'est, plutôt que de saisir la référence en relati f,
passer en absolu avec une référence de cellule : choix1. J'ai donc
essayé naïvement ceci et biensûr cela ne marche pas :

'déclaration de la variable et des conditions
Mavar = Target.name
Select Case UCase(Mavar)

' --------- RETOUR ACCUEIL    --------- '
Case Is = UCase("choix1")
Call masquer
Range("A1").Select

pourriez-vous me donner une piste svp ?

Merci d'avance

BV


Avatar
BV
On 9 juin, 15:57, wrote:
Bonjour,

Le second Ucase n'était pas indispensable mais le devient si choix il
y a
si choix est une variable ..pas mettre de guillemets
Peux tu préciser  comment tu envisages  que soit  fait ce choix?
Le début et fin du bout de code serait urtile pour le
contexte ..variables ..private sub ..sur quel évennement...etc

--
lSteph

On 9 juin, 15:33, BV wrote:

> Bonjour à tous

> je dois renvoyer en VBA un certain nombre d'actions selon les cellules
> activées. Voici ce que j'ai fait jusqu'à présent et qui fonctionn e
> parfaitement :

> 'déclaration de la variable et des conditions
> Mavar = Target.Address
> Select Case UCase(Mavar)

> ' --------- RETOUR ACCUEIL    --------- '
> Case Is = UCase("$B$4")
> Call masquer
> Range("A1").Select

> ce que j'aimerai c'est, plutôt que de saisir la référence en rela tif,
> passer en absolu avec une référence de cellule : choix1. J'ai donc
> essayé naïvement ceci et biensûr cela ne marche pas :

> 'déclaration de la variable et des conditions
> Mavar = Target.name
> Select Case UCase(Mavar)

> ' --------- RETOUR ACCUEIL    --------- '
> Case Is = UCase("choix1")
> Call masquer
> Range("A1").Select

> pourriez-vous me donner une piste svp ?

> Merci d'avance

> BV



désolé voici le début et la fin :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'
'déclaration de la variable et des conditions
Mavar = Target.Address
Select Case UCase(Mavar)

' --------- RETOUR ACCUEIL --------- '
Case Is = UCase("$B$4")
Call masquer
Range("A1").Select


' --------- GESTION DES MENUS --------- '

'Affichage du Menu NotaBene
Case Is = UCase("$B$6")
Call NotaBene
'Affichage du Menu Introduction Générale
Case Is = UCase("$B$7")
Call Intro
'Affichage du Menu Montage
Case Is = UCase("$B$8")
Call Montage
'Affichage du Menu Fonctionnement
Case Is = UCase("$B$9")

End select
End sub
Avatar
BV
On 9 juin, 15:50, FFO wrote:
Salut à toi

Que veux tu dire par :

passer en absolu avec une référence de cellule : choix1 ????

Tu peux mettre :

Case Is = UCase(Range("A1"))

Et en cellule A1 de la feuille active : $B$4 ou autre

Ce qui revient à :

Case Is = UCase("$B$4")

Mais je ne sais pas si celà correspond à ton attente

Merci de préciser




non non désolé "choix1" est un mauvais exemple, considérez plutôt u ne
nomination de cellule via le contrôleur de cellule ou le Menu
Insertion - Nom - définir
exemple : Case Is = UCase("toto")
Avatar
garnote
Salut BV,

Une suggestion, pas vérifié :
UCase(Range("choix1"))

Serge

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

On 9 juin, 15:50, FFO wrote:
Salut à toi

Que veux tu dire par :

passer en absolu avec une référence de cellule : choix1 ????

Tu peux mettre :

Case Is = UCase(Range("A1"))

Et en cellule A1 de la feuille active : $B$4 ou autre

Ce qui revient à :

Case Is = UCase("$B$4")

Mais je ne sais pas si celà correspond à ton attente

Merci de préciser




non non désolé "choix1" est un mauvais exemple, considérez plutôt une
nomination de cellule via le contrôleur de cellule ou le Menu
Insertion - Nom - définir
exemple : Case Is = UCase("toto")
Avatar
gmlsteph
Si j'ai bien compris:

Case is = [toto].Address

'...
Case is =[toto].offset(2,0).Address
Call NotaBene

'...
Case is =[toto].offset(3,0).Address
Call
...etc

'lSteph
Avatar
garnote
En tenant compte de ton exemple :
Case Is = UCase(Range("toto")


Serge

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

Salut BV,

Une suggestion, pas vérifié :
UCase(Range("choix1"))

Serge

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

On 9 juin, 15:50, FFO wrote:
Salut à toi

Que veux tu dire par :

passer en absolu avec une référence de cellule : choix1 ????

Tu peux mettre :

Case Is = UCase(Range("A1"))

Et en cellule A1 de la feuille active : $B$4 ou autre

Ce qui revient à :

Case Is = UCase("$B$4")

Mais je ne sais pas si celà correspond à ton attente

Merci de préciser




non non désolé "choix1" est un mauvais exemple, considérez plutôt une
nomination de cellule via le contrôleur de cellule ou le Menu
Insertion - Nom - définir
exemple : Case Is = UCase("toto")




Avatar
BV
On 9 juin, 16:50, wrote:
 Si j'ai bien compris:

Case is = [toto].Address

'...
 Case is =[toto].offset(2,0).Address
Call NotaBene

'...
Case is =[toto].offset(3,0).Address
Call
...etc

'lSteph



En fait je veux remplacer simplement dans la ligne : Case Is = UCase
("$B$4")
la référence et mettre par exemple : Case Is = UCase("toto")
en fait j'aimerai faire

Mavar = Target.Address
Select Case UCase(Mavar)

' --------- RETOUR ACCUEIL --------- '
Case Is = UCase("toto")
Call masquer

Case Is = UCase("tata")
Call afficher

Case Is = UCase("titi")
Call souligner

end select
end case
Avatar
gmlsteph
même réponse et pas besoin de Ucase

Case is = [toto].Address


pour la suite si les adresses ne sont pas liées à un décalage de la
première cellule idem avec titi ..tutu



Sinon je ne te suis pas du tout dans la nécessité de cette méthode
outre mon ignorance du but de la manoeuvre...
Si on connaissait le contexte et l'objectif j'ai la vive intuition
qu'il y aurait bien plus simple ..
;-) mais on peut se tromper!

Cordialement.

--
lSteph


On 9 juin, 17:01, BV wrote:
On 9 juin, 16:50, wrote:

>  Si j'ai bien compris:

> Case is = [toto].Address

> '...
>  Case is =[toto].offset(2,0).Address
> Call NotaBene

> '...
> Case is =[toto].offset(3,0).Address
> Call
> ...etc

> 'lSteph

En fait je veux remplacer simplement dans la ligne : Case Is = UCase
("$B$4")
la référence et mettre par exemple : Case Is = UCase("toto")
en fait j'aimerai faire

Mavar = Target.Address
Select Case UCase(Mavar)

' --------- RETOUR ACCUEIL    --------- '
Case Is = UCase("toto")
Call masquer

Case Is = UCase("tata")
Call afficher

Case Is = UCase("titi")
Call souligner

end select
end case


Avatar
BV
On 9 juin, 17:22, wrote:
même réponse et pas besoin de Ucase

Case is = [toto].Address

pour la suite si les adresses ne sont pas liées à un décalage de la
première cellule idem avec titi ..tutu

Sinon je ne te suis pas du tout dans la nécessité  de cette métho de
outre mon ignorance du but de la manoeuvre...
Si on connaissait le contexte et l'objectif j'ai la vive intuition
qu'il y aurait bien plus simple ..
;-) mais on peut se tromper!

Cordialement.

--
lSteph

On 9 juin, 17:01, BV wrote:

> On 9 juin, 16:50, wrote:

> >  Si j'ai bien compris:

> > Case is = [toto].Address

> > '...
> >  Case is =[toto].offset(2,0).Address
> > Call NotaBene

> > '...
> > Case is =[toto].offset(3,0).Address
> > Call
> > ...etc

> > 'lSteph

> En fait je veux remplacer simplement dans la ligne : Case Is = UCase
> ("$B$4")
> la référence et mettre par exemple : Case Is = UCase("toto")
> en fait j'aimerai faire

> Mavar = Target.Address
> Select Case UCase(Mavar)

> ' --------- RETOUR ACCUEIL    --------- '
> Case Is = UCase("toto")
> Call masquer

> Case Is = UCase("tata")
> Call afficher

> Case Is = UCase("titi")
> Call souligner

> end select
> end case



Bonsoir à tous et encore 1000 fois merci, la solution de gmlst
fonctionne

en fait ce que j'essaie de faire c'est d'écrire un bout de code sur
une feuille
qui me permette de définir des actions : (call mon action) en fonction
des cellules qui seront activées

exemple :
je clique en B4 (cellule que j'ai nommé toto) je lance une action
je clique en B15 (cellule que j'ai nommée tata) je lance une autre
action

le code que je vous ai envoyé au début fonctionne parfaitement mais
avec des références de cellule relatives
pour pouvoir déplacer mes cellules comme bon me semble je souhaite
passer ces références en absolu

et c'est là que cela se compliquait

merci encore pour votre aide
1 2