OVH Cloud OVH Cloud

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

7 réponses

1 2 3
Avatar
Daniel.C
J'ai ajouté un bouton auquel j'ai attaché le code :

Private Sub CommandButton1_Click()
Dim Rep As String
Do
' Récupération de la boite de dialogue
Rep = InputBox("Entrez les initiales")
'on boucle tant que les initiales ne sont pas correctes
Loop Until IsNumeric(Application.Match(UCase(Rep), _
[PPV_Initials], 0))
'récupération de la position des initiales
p = Application.Match(Rep, [PPV_Initials], 0)
With Sheets("Lists")
If Not IsError(p) Then
'incrémentation de la cellule correspondante
.Range("C4").Offset(p - 1).Value = _
.Range("C4").Offset(p - 1).Value + 1
End If
End With
End Sub

Le classeur modifié est à l'adresse :
http://cjoint.com/?lbo71UEg6f
Daniel

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
François
> 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







As-tu dimensinné ta variable comme une chaîne de caractère?
Cela ne semble pas vu ton exemple.
Fais par exemple:

Dim XX as string
Select case XX
Case XX="RT"
tra la la... et ainsi de suite

Bon courage

--
Amicalement

- "Pourquoi tant de n?"
- "Ben j'avais besoin d'e et ils m'ont jeté de l'o"
Ty-Fanch' (qui joue au Scrabble)
Avatar
rthompson
Bonjour et cela fonctionne

MAIS
Je devrai faire en sorte que ce soit inclu dans ma macro sans ouvrir un
inputbox
mais en prenant les initiales en C7

Donc je dois mettre Rep = PO!C7

mais c'e n'est pas la syntaxe correcte
Quelle est-telle s'il-te-plaît?

Merci

Et je crois qu'on arrive au bout

Je vois la lumière ;-)))))


Rex




"Daniel.C" a écrit dans le message de news:
OI$
J'ai ajouté un bouton auquel j'ai attaché le code :

Private Sub CommandButton1_Click()
Dim Rep As String
Do
' Récupération de la boite de dialogue
Rep = InputBox("Entrez les initiales")
'on boucle tant que les initiales ne sont pas correctes
Loop Until IsNumeric(Application.Match(UCase(Rep), _
[PPV_Initials], 0))
'récupération de la position des initiales
p = Application.Match(Rep, [PPV_Initials], 0)
With Sheets("Lists")
If Not IsError(p) Then
'incrémentation de la cellule correspondante
.Range("C4").Offset(p - 1).Value = _
.Range("C4").Offset(p - 1).Value + 1
End If
End With
End Sub

Le classeur modifié est à l'adresse :
http://cjoint.com/?lbo71UEg6f
Daniel

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
Misange
Je reprends ton énoncé modifié pour ajouter le cas else qui manquait:
If Macellule = "RT" Then lautrecellule = range("C4").value
ElseIf Macellule = "GW" Then lautrecellule = range("C5").value
else lautrecellule="donnée manquante"
End If

avec des select case ça donne

Select Case macellule 'c'est la variable dont tu testes la valeur
Case "RT"
Range("lautrecellule").Value = range("C4").value
Case "GW"
Range("lautrecellule").Value = range("C5").value
case else
Range("lautrecellule").Value = "donnée manquante"
End Select

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

rthompson a écrit :
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








Avatar
rthompson
J'AI COMPRIS


Comme disait l'autre je comprends tout

Si on a le temps de me l'expliquer deux cents fois


ENFIN

Comment te remercier

A bientôt

Rex :-))))))



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

Je reprends ton énoncé modifié pour ajouter le cas else qui manquait:
If Macellule = "RT" Then lautrecellule = range("C4").value
ElseIf Macellule = "GW" Then lautrecellule = range("C5").value
else lautrecellule="donnée manquante"
End If

avec des select case ça donne

Select Case macellule 'c'est la variable dont tu testes la valeur
Case "RT"
Range("lautrecellule").Value = range("C4").value
Case "GW"
Range("lautrecellule").Value = range("C5").value
case else
Range("lautrecellule").Value = "donnée manquante"
End Select

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

rthompson a écrit :
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









Avatar
rthompson
Bonjour

Et comme je viens de le dire Misange

J'AI COMPRIS

Mon Dieu que vous êtes patients

Un tout grand merci

et à bientôt

Rex


"François" a écrit dans le message
de news:
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







As-tu dimensinné ta variable comme une chaîne de caractère?
Cela ne semble pas vu ton exemple.
Fais par exemple:

Dim XX as string
Select case XX
Case XX="RT"
tra la la... et ainsi de suite

Bon courage

--
Amicalement

- "Pourquoi tant de n?"
- "Ben j'avais besoin d'e et ils m'ont jeté de l'o"
Ty-Fanch' (qui joue au Scrabble)




Avatar
rthompson
CA Y EST


Enfin je crois

Je fais mes dernières manipulations ce soir à la maison
Et si j'ai des soucis ce sera pour demain, si toi ou un autre êtes là bien
entendu

Mais pour lr moment je crois que je suis sauvé


Un merci grand comme une baleine à toi et les autres

Merci merci merci

Je ne dirai pas à quel point je suis soulagé


Rex

Non seulement je suis sorti du tunnel et je respire
Mais à première vue il n'y a pas d'autres tunnels avant la prochaine gare




"Daniel.C" a écrit dans le message de news:
OI$
J'ai ajouté un bouton auquel j'ai attaché le code :

Private Sub CommandButton1_Click()
Dim Rep As String
Do
' Récupération de la boite de dialogue
Rep = InputBox("Entrez les initiales")
'on boucle tant que les initiales ne sont pas correctes
Loop Until IsNumeric(Application.Match(UCase(Rep), _
[PPV_Initials], 0))
'récupération de la position des initiales
p = Application.Match(Rep, [PPV_Initials], 0)
With Sheets("Lists")
If Not IsError(p) Then
'incrémentation de la cellule correspondante
.Range("C4").Offset(p - 1).Value = _
.Range("C4").Offset(p - 1).Value + 1
End If
End With
End Sub

Le classeur modifié est à l'adresse :
http://cjoint.com/?lbo71UEg6f
Daniel

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










1 2 3