Codage VBA - If ... Elseif ... Then - Novice
Fermé
Vrus75
Messages postés
4
Date d'inscription
mercredi 25 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017
-
25 janv. 2017 à 15:01
f894009 Messages postés 17217 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 - 25 janv. 2017 à 18:49
f894009 Messages postés 17217 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 27 décembre 2024 - 25 janv. 2017 à 18:49
A voir également:
- Codage VBA - If ... Elseif ... Then - Novice
- Codage ascii - Guide
- Codage binaire - Guide
- Find vba - Astuces et Solutions
- Miswiring check wiring then power on - Forum Autoradio
- Vba attendre 1 seconde ✓ - Forum VB / VBA
5 réponses
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
25 janv. 2017 à 17:08
25 janv. 2017 à 17:08
Bonjour,
Peut pas marcher votre code, vous mettez les conditons pour boucler sans fin d'ou erreur excel !!
Peut pas marcher votre code, vous mettez les conditons pour boucler sans fin d'ou erreur excel !!
Vrus75
Messages postés
4
Date d'inscription
mercredi 25 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017
25 janv. 2017 à 17:14
25 janv. 2017 à 17:14
Bonjour, merci de votre réponse, je ne cherche pas a boucler sans fin, mais simplement à avoir un système booléen qui me permet de revenir a mon point de départ...
En gros une fois arrivé à Actu 3 J'aimerais qu'il se produise une autre action et que le code reparte a l'action 1 qui dans le cas du dessus serais ecrire Expertise.
Pensez vous que c'est réalisable ?
J'ai commencer a écrire cela qui marche mais juste sur une action et sur une cellule ...
Dim cell As String, ex As String
cell = Range("J12").Value
If cell = "Expertise" Then ex = "Actu 1"
Range("J12").Value = ex
Quand j'essai d'intégrer un ElseIf cela ne marche plus :
Dim cell As String, ex As String
cell = Range("J12").Value
If cell = "Expertise" Then ex = "Actu 1"
Range("J12").Value = ex
ElseIf cell = "Actu 1" Then ex = "Actu 2"
Range("J12").Value = ex
ElseIf cell = "Actu 2" Then ex = "Actu 3"
Range("J12").Value = ex
J'avance tranquillement mais je crain de ne jamais y arriver ... lol :/
En gros une fois arrivé à Actu 3 J'aimerais qu'il se produise une autre action et que le code reparte a l'action 1 qui dans le cas du dessus serais ecrire Expertise.
Pensez vous que c'est réalisable ?
J'ai commencer a écrire cela qui marche mais juste sur une action et sur une cellule ...
Dim cell As String, ex As String
cell = Range("J12").Value
If cell = "Expertise" Then ex = "Actu 1"
Range("J12").Value = ex
Quand j'essai d'intégrer un ElseIf cela ne marche plus :
Dim cell As String, ex As String
cell = Range("J12").Value
If cell = "Expertise" Then ex = "Actu 1"
Range("J12").Value = ex
ElseIf cell = "Actu 1" Then ex = "Actu 2"
Range("J12").Value = ex
ElseIf cell = "Actu 2" Then ex = "Actu 3"
Range("J12").Value = ex
J'avance tranquillement mais je crain de ne jamais y arriver ... lol :/
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
Modifié par f894009 le 25/01/2017 à 17:23
Modifié par f894009 le 25/01/2017 à 17:23
Re,
structure if elseif elseif else end if
structure if elseif elseif else end if
Sub test() Dim cell As String cell = Range("J12").Value If cell = "Expertise" Then Range("J12").Value = "Actu 1" ElseIf cell = "Actu 1" Then Range("J12").Value = "Actu 2" ElseIf cell = "Actu 2" Then Range("J12").Value = "Actu 3" Else End If End Sub
Vrus75
Messages postés
4
Date d'inscription
mercredi 25 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017
25 janv. 2017 à 17:53
25 janv. 2017 à 17:53
Super merci je venais en effet de me rendre compte de l'importance du retour a la ligne aprés Then...
Maintenant j'aimerais appliquer cette fonction a une plage (colonne...)
toute la colonne J a partir de la ligne 12
Mais la macro va être lente alors j'aimerais que sa actualise juste les cases avec une valeur et non pas les cases vide.
Ou sinon simple faire une plage de J12:J100 ce qui sera suffisant
Je suis entrain de chercher
Maintenant j'aimerais appliquer cette fonction a une plage (colonne...)
toute la colonne J a partir de la ligne 12
Mais la macro va être lente alors j'aimerais que sa actualise juste les cases avec une valeur et non pas les cases vide.
Ou sinon simple faire une plage de J12:J100 ce qui sera suffisant
Je suis entrain de chercher
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
25 janv. 2017 à 18:30
25 janv. 2017 à 18:30
Re,
le code que j'ai mis montre la structure.
Comment allez vous lancer le code de mise a jour, c'est cela qui va determiner marche ou pas
le code que j'ai mis montre la structure.
Comment allez vous lancer le code de mise a jour, c'est cela qui va determiner marche ou pas
Bonjour
je préfère le Select case
A+
Maurice
je préfère le Select case
Sub TestM() Select Case Range("J12").Value Case "Expertise" Range("J12").Value = "Actu 1" Case "Actu 1" Range("J12").Value = "Actu 2" Case "Actu 2" Range("J12").Value = "Actu 3" End Select End Sub
A+
Maurice
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
Modifié par f894009 le 25/01/2017 à 18:47
Modifié par f894009 le 25/01/2017 à 18:47
Bonjour,
Mais c'est vous qui voyez
Select Case End Selectest plus lent en execution que
If ElseIf End If
Mais c'est vous qui voyez
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Vrus75
Messages postés
4
Date d'inscription
mercredi 25 janvier 2017
Statut
Membre
Dernière intervention
25 janvier 2017
25 janv. 2017 à 18:33
25 janv. 2017 à 18:33
J'ai reussi,
maintenant je suis confronté a un autre problème c'est que j'aimerais switcher deux valeur présente dans deux autre colonne lorsque les conditions "Expertise" et "Critique 1" sont reunies
je vous fourni ce que j'ai fait :
Dim ligne As Integer
Dim colonne As Integer
ligne = 12
colonne = 10
Do
If Cells(ligne, colonne).Value = "Expertise" Then
Cells(ligne, colonne).Value = "Actualisation 1"
ElseIf Cells(ligne, colonne).Value = "Actualisation 1" Then
Cells(ligne, colonne).Value = "Actualisation 2"
ElseIf Cells(ligne, colonne).Value = "Actualisation 2" Then
Cells(ligne, colonne).Value = "Actualisation 3"
ElseIf Cells(ligne, colonne).Value = "Actualisation 3" Then
Cells(ligne, colonne).Value = "Expertise"
Else
End If
ligne = ligne + 1
Loop While Cells(ligne, colonne).Value <> 0
ligne = 12
colonne = 12
Do
If Cells(ligne, colonne).Value = "Critique 1" Then
Cells(ligne, colonne).Value = "Critique 2"
ElseIf Cells(ligne, colonne).Value = "Critique 2" Then
Cells(ligne, colonne).Value = "Critique 3"
ElseIf Cells(ligne, colonne).Value = "Critique 3" Then
Cells(ligne, colonne).Value = "Critique 4"
ElseIf Cells(ligne, colonne).Value = "Critique 4" Then
Cells(ligne, colonne).Value = "Critique 1"
Else
End If
ligne = ligne + 1
Loop While Cells(ligne, colonne).Value <> 0
maintenant je suis confronté a un autre problème c'est que j'aimerais switcher deux valeur présente dans deux autre colonne lorsque les conditions "Expertise" et "Critique 1" sont reunies
je vous fourni ce que j'ai fait :
Dim ligne As Integer
Dim colonne As Integer
ligne = 12
colonne = 10
Do
If Cells(ligne, colonne).Value = "Expertise" Then
Cells(ligne, colonne).Value = "Actualisation 1"
ElseIf Cells(ligne, colonne).Value = "Actualisation 1" Then
Cells(ligne, colonne).Value = "Actualisation 2"
ElseIf Cells(ligne, colonne).Value = "Actualisation 2" Then
Cells(ligne, colonne).Value = "Actualisation 3"
ElseIf Cells(ligne, colonne).Value = "Actualisation 3" Then
Cells(ligne, colonne).Value = "Expertise"
Else
End If
ligne = ligne + 1
Loop While Cells(ligne, colonne).Value <> 0
ligne = 12
colonne = 12
Do
If Cells(ligne, colonne).Value = "Critique 1" Then
Cells(ligne, colonne).Value = "Critique 2"
ElseIf Cells(ligne, colonne).Value = "Critique 2" Then
Cells(ligne, colonne).Value = "Critique 3"
ElseIf Cells(ligne, colonne).Value = "Critique 3" Then
Cells(ligne, colonne).Value = "Critique 4"
ElseIf Cells(ligne, colonne).Value = "Critique 4" Then
Cells(ligne, colonne).Value = "Critique 1"
Else
End If
ligne = ligne + 1
Loop While Cells(ligne, colonne).Value <> 0
f894009
Messages postés
17217
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
27 décembre 2024
1 712
25 janv. 2017 à 18:49
25 janv. 2017 à 18:49
Re,
Ca ne vous derangerait pas de mettre le code complet pour voir le debut et la fin
Ca ne vous derangerait pas de mettre le code complet pour voir le debut et la fin