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

ElseIf

27 réponses
Avatar
rthompson
Bonjour à toutes et tous

Comme je ne parviens pas à trouver mon bonheur dans mon fil précédent j'en
essaie un autre avec une autre piste

Je bloque sur ce problème depuis plusieurs jours maintenant et je deviens
FOU

Alors allons voir du côté des If et Elseif

Je me dis que je pourrais faire un truc dans le genre

If Macellule = "RT" Then lautrecellule = la valeur de la cellule C4
ElseIf Macellule = "GW" Then lautrecellule = la valeur de la cellule C5

End If

Mais je ne parviens pas à trouver un exemple concret sur Excelabo
qui pourrait me donner une idée de syntaxe

Alors je crie AU SECOURS


A très bientôt


Rex

10 réponses

1 2 3
Avatar
rthompson
Bonjour JB

Et merci

MsgBox?????

Je ne comprends pas

Décidément soit je deviens trop vieux pour Excel
Soit je deviens fou

Si tu as le temps jettes un coup d'oiel sur ma réponse à Misange danss mon
fil Utilisation des Ifs
J'y ai mis une pièce jointe
et j'y explique mes trois souci

Merci beaucoup et à bientôt

Rex



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

Bonjour,

x = "GW"
p = Application.Match(x, Array("RT", "GW", "XX", "YY"), 0)
If Not IsError(p) Then y = Range("C4:C7")(p)
MsgBox y

JB



On 1 nov, 13:01, "rthompson" wrote:
Bonjour à toutes et tous

Comme je ne parviens pas à trouver mon bonheur dans mon fil précédent j'en
essaie un autre avec une autre piste

Je bloque sur ce problème depuis plusieurs jours maintenant et je deviens
FOU

Alors allons voir du côté des If et Elseif

Je me dis que je pourrais faire un truc dans le genre

If Macellule = "RT" Then lautrecellule = la valeur de la cellule C4
ElseIf Macellule = "GW" Then lautrecellule = la valeur de la cellule C5

End If

Mais je ne parviens pas à trouver un exemple concret sur Excelabo
qui pourrait me donner une idée de syntaxe

Alors je crie AU SECOURS

A très bientôt

Rex


Avatar
Daniel.C
> Troisème souci
Il faudra, par macro, incrémenter la valeur du numéro choisi de 1


Donc si l'initial GW est choisi je dois (via bouton, mais cela je sais
faire)
incrémenter la cellule C4 d'une unité

Et si c'est MW c'est la cellule C5



Le code posté par JB, légèrement modifié te donne la solution :

x = "GW"
p = Application.Match(x, Array("RT", "GW", "XX", "YY"), 0)
If Not IsError(p) Then
Range("C4").Offset(p - 2) = Range("C4").Offset(p - 2) + 1

A toi de déterminer, par bouton, la valeur de x.
Daniel
Avatar
rthompson
OUF

En voilà toujours une de résolue

Et j'ajouterai que j'avais un problème de référence circulaire
J'ai maintenant mis cette formule directement sur la feuille PO
Et cette partie fonctionne

Maintenant il n'y plus que deux soucis

Un Pourquoi mes dropdawn réagisent-ils de façon erronées?

Et comment lors de la sauvegarde incrimente d'une unité la cellule en face
de l'initial choisie?

A bientôt

ET SURTOUT MERCI

Je commence, non pas à voir le bout du tunnel,
mais au moins je sais dans quel sens je dois marcher

Rex




"Daniel.C" a écrit dans le message de news:

Deuxième souci
Sur la feuille PO en J2 je suis lié à la feuille Lists D2
La cellule Lists!D2 est le résultat du Concatenate des cellules PO!C7 et
Lists!C2
Cette partie fonctionne
MAIS
Il faut que le numéro choisi soit en fonction des initiales
Et c'est cela que je n'arrive pas à faire
Je crois que ceci est lié au premier souci et doit se trouver dans mes
noms



S'il s'agit du nombre sur la même ligne que les initiales :
=PO!C7&INDEX(PPV_POnumber;EQUIV(PO!C7;PPV_Initials;0))
Daniel




Avatar
François
> J'ai jeté mon oeil non averti sur les Case
Et j'y comprends rien



Alors si tu peux être plus explicatif



Rex



"Case" fait un truc du style ci-dessous sur des choix multiples:

Select Case NbAns

Case Is < 2
Calculage = 0
Case Is < 5
Calculage = 100
Case Is < 10
Calculage = 200
Case Else
Calculage = 300

End Select

Après tu adaptes...

--
Amicalement

"Le néant est un couteau sans lame auquel il manque le manche"
G.C. Lichtenberg
Avatar
Daniel.C
> Bonjour et merci




Et mon autre souci, si tu utilise les "Dropdown" de la feuille PO
tu verras que les initials ne correspondent pas au nom à chaque fois



C'est vrai. A la place de la fonction "recherche", j'ai utilisé
"recherchev qui, elle, fonctionne :
en C7, mets :
=RECHERCHEV(B7;DECALER(PPV_Name;;;;2);2;0)
C'est un peu barbare, mais tu peux remplacer la partie
"DECALER(PPV_Name;;;;2)" par une plage nommée correspondant à
Lists!A4:B12.
Daniel
Avatar
Misange
Salut

C'est pas de la mauvaise volonté pour tes autres fils mais il faut que
tu simplifies tes questions. On te réponds et tu dis "ah mais les
données ont changé" et tu te lances dans des explications sur un
classeur qui a l'air très compliqué. Sincèrement, dans ces cas là, je
n'ouvre même pas le classeur joint (c'est rare que je le fasse de toutes
façons, faute de temps et d'envie de comprendre la logique des autres
quand déjà j'ai du mal avec la mienne).
Mais je vois que d'autres ont plus de patience que moi :-)

pour répondre plus précisement à ta "nouvelle" question et au pb des
select case :

la syntaxe de if then elseif :

if condition1 then
truc1
elseif condition2 then
truc2
elseif condition3 then
truc3
else '(toute autre condition)
truc4
end if


c'est souvent lourd et difficile à suivre. L'utilisation du select case
est bien souvent plus simple:
tu as une variable disons montest
en fonction de la valeur de cette variable, tu veux faire un truc
différent. Ce truc ça peut être appliquer une formule, ou déclencher une
macro, ou jouer une jolie musique, peu importe, le principe est toujours
le même.
un des intérêts aussi de cette formulation c'est que un "cas" peut
comporter plusieurs valeurs : si mon test = 12 ou 13 ou 14 ou toto alors
fais ça...

Sub essai()
montest=Range("A1").Value
Select Case montest
Case <100
Range("B1").Value = montest*2
Case 100 to 200
Range("B1").Value = montest*3
Case 250, 260, 270
Range("B1").Value = "pas possible !"
Case 350
call mamacro
Case 400
Range("B1").Value =range("D2").value
End Select

End Sub

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
J'ai jeté mon oeil non averti sur les Case
Et j'y comprends rien

Alors si tu peux être plus explicatif

Rex

ET MERCI



"François" a écrit dans le message
de news:
Bonjour à toutes et tous
Comme je ne parviens pas à trouver mon bonheur dans mon fil précédent
j'en essaie un autre avec une autre piste
Je bloque sur ce problème depuis plusieurs jours maintenant et je deviens
FOU
Alors allons voir du côté des If et Elseif
Je me dis que je pourrais faire un truc dans le genre
If Macellule = "RT" Then lautrecellule = la valeur de la cellule C4
ElseIf Macellule = "GW" Then lautrecellule = la valeur de la cellule C5
End If
Mais je ne parviens pas à trouver un exemple concret sur Excelabo
qui pourrait me donner une idée de syntaxe
Alors je crie AU SECOURS
A très bientôt
Rex


Bonjour,

Si ton problème est celui exposé plus haut, tu peux essayer la commande
"case" qui est très efficace et permet d'éviter les If et ElseIf.
Dis nous-en un peu plus.

--
Amicalement

"La théorie c'est quand on sait tout et que rien ne fonctionne. La
pratique c'est quand ça fonctionne et que personne ne sait pourquoi. Ici,
nous avons réuni théorie et pratique, rien ne fonctionne et personne ne
sait pourquoi."
Albert Einstein








Avatar
rthompson
Et de deux!!!!!!

Mais qu'est-ce que tu es bon

Et surtout qu'est-ce que je suis content

Je chercherai un autre jour pourquoi le V marche

A mon avis quand tu lui dis "Recherche" il est comme mon chien, il te
regardes en disant mais qu'est-ce que tu veux

Mais t'ajoute le V de VA et il y va

Rex qui commence à récupérer son ;-)))


Merci

Plus qu'une et ce sera presque fini


"Daniel.C" a écrit dans le message de news:

Bonjour et merci




Et mon autre souci, si tu utilise les "Dropdown" de la feuille PO
tu verras que les initials ne correspondent pas au nom à chaque fois



C'est vrai. A la place de la fonction "recherche", j'ai utilisé
"recherchev qui, elle, fonctionne :
en C7, mets :
=RECHERCHEV(B7;DECALER(PPV_Name;;;;2);2;0)
C'est un peu barbare, mais tu peux remplacer la partie
"DECALER(PPV_Name;;;;2)" par une plage nommée correspondant à
Lists!A4:B12.
Daniel




Avatar
rthompson
Bonjour

Ici il faudra que tu me tienne la main pour me guider

On entre dans une zone VBA que je ne maitrise pas

Je suppose que je dois ajouter en début de code des déclaration

Donc comme on cherche la cellule de la même ligne que l'initial en Feuille
PO cellule C7

Ce sera un truc comme Dim x=Range ("PO8c7") ??????

Mais là je suis nul

Donc si tu as encore un peu de temps

J'en serai ravi

A bientôt

Rex


"Daniel.C" a écrit dans le message de news:

Troisème souci
Il faudra, par macro, incrémenter la valeur du numéro choisi de 1


Donc si l'initial GW est choisi je dois (via bouton, mais cela je sais
faire)
incrémenter la cellule C4 d'une unité

Et si c'est MW c'est la cellule C5



Le code posté par JB, légèrement modifié te donne la solution :

x = "GW"
p = Application.Match(x, Array("RT", "GW", "XX", "YY"), 0)
If Not IsError(p) Then
Range("C4").Offset(p - 2) = Range("C4").Offset(p - 2) + 1

A toi de déterminer, par bouton, la valeur de x.
Daniel




Avatar
rthompson
Bonjour

Et j'ai compris la leçon

J'essaierai d'être plus clair


En ce qui concerne la 'complication" de mes fichiers
Je te rassure, ce n'est pas moi
Mes fichiers sont plus simple
Mais mon boss refuse de faire simple

Alors que quasi toutes les sociétés utilisent des numéros dans le style
La date/lequantièmedujour/le projet/le responsable 2008/05/HGT/rt
Le mien insiste que chaque responsable à une série à lui
Et il les veut tous sur le même fichier
Je te dis pas les ennuis de fichiers partagés que cela engendre


Enfin, c'est lui qui paie


Merci à toi

Et à bientôt

Rex


"Misange" a écrit dans le message de news:
%
Salut

C'est pas de la mauvaise volonté pour tes autres fils mais il faut que tu
simplifies tes questions. On te réponds et tu dis "ah mais les données ont
changé" et tu te lances dans des explications sur un classeur qui a l'air
très compliqué. Sincèrement, dans ces cas là, je n'ouvre même pas le
classeur joint (c'est rare que je le fasse de toutes façons, faute de
temps et d'envie de comprendre la logique des autres quand déjà j'ai du
mal avec la mienne).
Mais je vois que d'autres ont plus de patience que moi :-)

pour répondre plus précisement à ta "nouvelle" question et au pb des
select case :

la syntaxe de if then elseif :

if condition1 then
truc1
elseif condition2 then
truc2
elseif condition3 then
truc3
else '(toute autre condition)
truc4
end if


c'est souvent lourd et difficile à suivre. L'utilisation du select case
est bien souvent plus simple:
tu as une variable disons montest
en fonction de la valeur de cette variable, tu veux faire un truc
différent. Ce truc ça peut être appliquer une formule, ou déclencher une
macro, ou jouer une jolie musique, peu importe, le principe est toujours
le même.
un des intérêts aussi de cette formulation c'est que un "cas" peut
comporter plusieurs valeurs : si mon test = 12 ou 13 ou 14 ou toto alors
fais ça...

Sub essai()
montest=Range("A1").Value
Select Case montest
Case <100
Range("B1").Value = montest*2
Case 100 to 200
Range("B1").Value = montest*3
Case 250, 260, 270
Range("B1").Value = "pas possible !"
Case 350
call mamacro
Case 400
Range("B1").Value =range("D2").value
End Select

End Sub

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

rthompson a écrit :
J'ai jeté mon oeil non averti sur les Case
Et j'y comprends rien

Alors si tu peux être plus explicatif

Rex

ET MERCI



"François" a écrit dans le
message de news:
Bonjour à toutes et tous
Comme je ne parviens pas à trouver mon bonheur dans mon fil précédent
j'en essaie un autre avec une autre piste
Je bloque sur ce problème depuis plusieurs jours maintenant et je
deviens FOU
Alors allons voir du côté des If et Elseif
Je me dis que je pourrais faire un truc dans le genre
If Macellule = "RT" Then lautrecellule = la valeur de la cellule C4
ElseIf Macellule = "GW" Then lautrecellule = la valeur de la cellule
C5
End If
Mais je ne parviens pas à trouver un exemple concret sur Excelabo
qui pourrait me donner une idée de syntaxe
Alors je crie AU SECOURS
A très bientôt
Rex


Bonjour,

Si ton problème est celui exposé plus haut, tu peux essayer la commande
"case" qui est très efficace et permet d'éviter les If et ElseIf.
Dis nous-en un peu plus.

--
Amicalement

"La théorie c'est quand on sait tout et que rien ne fonctionne. La
pratique c'est quand ça fonctionne et que personne ne sait pourquoi.
Ici, nous avons réuni théorie et pratique, rien ne fonctionne et
personne ne sait pourquoi."
Albert Einstein









Avatar
rthompson
Bonjour à toi

J'ai revu pas mal d'exemple de Case comme celui que tu me montres

Misange m'en parle aussi

Mais, quand j'adapte avec des lettre au lieu de chiffre il me plante

Voici l'exemple de Misange adapté
Sub essai()
montest = Range("A1").Value
Select Case montest
Case Is = "RT"
Range("B1").Value = montest * 2
Case Is = "GW"
Range("B1").Value = montest * 3
Case 250, 260, 270
Range("B1").Value = "pas possible !"
' Case 350
' Call mamacro
Case 400
Range("B1").Value = Range("D2").Value
End Select

End Sub


Et il me donne Mismatch comme message d'erreur


A bientôt
Et merci de ton aide

Rex


"François" a écrit dans le message
de news:
J'ai jeté mon oeil non averti sur les Case
Et j'y comprends rien



Alors si tu peux être plus explicatif



Rex



"Case" fait un truc du style ci-dessous sur des choix multiples:

Select Case NbAns

Case Is < 2
Calculage = 0
Case Is < 5
Calculage = 100
Case Is < 10
Calculage = 200
Case Else
Calculage = 300

End Select

Après tu adaptes...

--
Amicalement

"Le néant est un couteau sans lame auquel il manque le manche"
G.C. Lichtenberg




1 2 3