Codage VBA - If ... Elseif ... Then - Novice
Vrus75
Messages postés
4
Statut
Membre
-
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis entrain d'éssayer de coder une action afin de gagner du temps, cependant je n'ai jamais fait de VBA et j'ai quelque base en codage mais j'ai compris aujourd'hui que je ne pouvais plus appeller ca "base"
Je cherche donc une ame charitable qui serait capable de m'aider à réaliser ce petit bout de code que je pense pas bien compliqué en soit pour quelqu'un qui si connait.
J'ai essayé de formuler ce bout de code en vba avec If ... Elseif ... Then...
Voici ce que j'aimerais faire :
'je me place dans la feuille Feuil1'
'Je me place a partir de la ligne 12 en colonne J et L'
'Première condition'
'si dans la case J12 correspond à "Expertise" et que la case L12 correspond à "Critique 1"'
'alors changer la valeur "Expertise" en "Actu 1" et changer la valeur "Critique 1" en "Critique 2"'
'Deuxième condition'
'si la case J12 correspond à "Actu 1" et que la case L12 correspond à "Critique 2"'
'alors changer la valeur "Actu 1" en "Actu 2" et changer la valeur "Critique 2" en "Critique 3"'
'Troisieme condition'
'si la case J12 correspond à "Actu 2" et que la case L12 correspond à "Critique 3"'
'alors changer la valeur "Actu 2" en "Actu 3" et changer la valeur "Critique 3" en "Critique 4"'
'Quatrieme condition'
'si la case J12 correspond à "Actu 3" et que la case L12 correspond à "Critique 4"'
'alors changer la valeur "Actu 3" en "Expertise" et changer la valeur "Critique 4" en "Critique 1"'
'Et Switcher les cases I12 et K12'
'Passer a la ligne suivante'
'arreter si case vide'
Merci d'avance,
aux ames charitables
Vrus
Je suis entrain d'éssayer de coder une action afin de gagner du temps, cependant je n'ai jamais fait de VBA et j'ai quelque base en codage mais j'ai compris aujourd'hui que je ne pouvais plus appeller ca "base"
Je cherche donc une ame charitable qui serait capable de m'aider à réaliser ce petit bout de code que je pense pas bien compliqué en soit pour quelqu'un qui si connait.
J'ai essayé de formuler ce bout de code en vba avec If ... Elseif ... Then...
Voici ce que j'aimerais faire :
'je me place dans la feuille Feuil1'
'Je me place a partir de la ligne 12 en colonne J et L'
'Première condition'
'si dans la case J12 correspond à "Expertise" et que la case L12 correspond à "Critique 1"'
'alors changer la valeur "Expertise" en "Actu 1" et changer la valeur "Critique 1" en "Critique 2"'
'Deuxième condition'
'si la case J12 correspond à "Actu 1" et que la case L12 correspond à "Critique 2"'
'alors changer la valeur "Actu 1" en "Actu 2" et changer la valeur "Critique 2" en "Critique 3"'
'Troisieme condition'
'si la case J12 correspond à "Actu 2" et que la case L12 correspond à "Critique 3"'
'alors changer la valeur "Actu 2" en "Actu 3" et changer la valeur "Critique 3" en "Critique 4"'
'Quatrieme condition'
'si la case J12 correspond à "Actu 3" et que la case L12 correspond à "Critique 4"'
'alors changer la valeur "Actu 3" en "Expertise" et changer la valeur "Critique 4" en "Critique 1"'
'Et Switcher les cases I12 et K12'
'Passer a la ligne suivante'
'arreter si case vide'
Merci d'avance,
aux ames charitables
Vrus
A voir également:
- Codage VBA - If ... Elseif ... Then - Novice
- Codage ascii - Guide
- Codage - Guide
- Excel compter cellule couleur sans vba - Guide
- Apprendre le codage - Guide
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
5 réponses
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 !!
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 :/
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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