Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Temjeh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

T

Temjeh

Guest
Bonsoir à tous
Bonne nuit les français

J'aimerais juste savoir si il est possible de simplifier quand on a 10 end if à la fin d'un code?


End if
End if
End if
End if
End if
End if
End if
End if
End if
End if

Du genre
End if (10)

Merci

Temjeh
 
Bonjour Temjeh, le Forum

Non, LOL, sorry çà me fait rigoler ta question !!!

Du genre :

For i = 1 to 10
End If !!!!
Next

Non Impossible !!!

Ce qu'il faut savoir c'est si tu as vraiment besoin de 10 'If End If'... Si c'est réellement une cascade de conditions de ce style :



Sinon, si pas de cascade nécessaire, préférer un Select Case !!!
Bonne Journée
@+Thierry

EDITION ! Pas évident la mise en forme LOL

Message édité par: _Thierry, à: 05/04/2005 08:24
 
Merci beaucoup pour ta réponse Thierry

On a au moins trouvé une chose que excel ne fait pas!!! 🙂

Oui j'ai un code en cascade et vu mon ma faible connaissance en programmation je sais que je pourrais en enlevé un peu dans mes compo.

Merci beaucoup

Temjeh

Ps: Si tu as un ptit exemple de code simple pour voir une différence avec et sans select case..Merci
 
Bonjour
Le Else If peut aussi simplifier.

Tout dépend du contenu des If.

Pour select case : s'applique à n possibilités testées sur un même élément : exemple 1 objet pour être d'une couleur parmi 10. On teste les 10 couleurs (+ autres éventuellement) via un select case.

Chris
 
Comme exemple sans trop vous acharnez sur mon code pour le simplifier 🙂 pourrais-je mettre des select case ou enlevre des if?

Défense de rire SVP (tous des codes trouvés ici mit bout à bout)

Private Sub CommandButton3_Click()
Dim r
r = (Left(TextBox3, 1))
Debut:

If TextBox1.Value = '' Then
MsgBox ' Vous devez remplir tous les champs '
Else
If TextBox2.Value = '' Then
MsgBox ' Vous devez remplir tous les champs '
Else
If TextBox3.Value = '' Then
MsgBox ' Vous devez remplir tous les champs '
Else
If TextBox4.Value = '' Then
MsgBox ' Vous devez remplir tous les champs '
Else
If TextBox6.Value = '' Then
MsgBox ' Vous devez remplir tous les champs '
GoTo Debut
Else
If Not TextBox4 Like '###-###-####' Then
MsgBox ' Erreur dans le téléphone. Veuillez utiliser ce format: ###-###-#### '
Exit Sub

Else
If IsNumeric(TextBox3) Then
MsgBox 'Ne pas mettre de valeur numérique pour la ville!'
Else
CommandButton9.Enabled = True
Sheets(r).Select
Range('A65000').End(xlUp).Offset(1, 0).Select
Range(ActiveCell, ActiveCell.Offset(0, 5)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

ActiveCell = TextBox1
ActiveCell.Offset(0, 2).Value = TextBox2
ActiveCell.Offset(0, 1).Value = TextBox6
ActiveCell.Offset(0, 3).Value = TextBox3
TextBox4.Value = Replace(expression:=TextBox4.Value, Find:=' ', Replace:='')
ActiveCell.Offset(0, 4).Value = TextBox4
ActiveCell.Offset(0, 5) = TextBox5
Select Case MsgBox(' Voulez-vous en entrer un autre? ', vbYesNo)
Case vbYes
TextBox1 = ''
TextBox2 = ''
TextBox3 = ''
TextBox4 = ''
TextBox5 = ''
TextBox6 = ''
CommandButton9.Enabled = False
Range('A65000').End(xlUp).Offset(1, 0).Select
Case vbNo

End Select
End If
End If
End If
End If
End If
End If
End If
End Sub

Merci je doit partir si il y a réponse je reviens plus tard

Temjeh
 
Bonjour

SAns trop modifier ta macro cela pourrait donner ceci

Private Sub CommandButton3_Click()

Dim UnOubli as boolean
Dim r
r = (Left(TextBox3, 1))

If TextBox1.Value = '' Then UnOubli=true
If TextBox2.Value = '' Then UnOubli=true
If TextBox3.Value = '' Then UnOubli=true
If TextBox4.Value = '' Then UnOubli=true
If TextBox6.Value = '' Then UnOubli=true
if UnOubli=true then
MsgBox ' Vous devez remplir tous les champs '
Exit sub
End if
If Not TextBox4 Like '###-###-####' Then
MsgBox ' Erreur dans le téléphone. Veuillez utiliser ce format: ###-###-#### '
Exit Sub
end if
If IsNumeric(TextBox3) Then
MsgBox 'Ne pas mettre de valeur numérique pour la ville!'
Exit sub
end if
CommandButton9.Enabled = True
Sheets(r).Select
Range('A65000').End(xlUp).Offset(1, 0).Select
Range(ActiveCell, ActiveCell.Offset(0, 5)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
Selection.Borders(xlInsideVertical).LineStyle = xlNone
Selection.Borders(xlInsideHorizontal).LineStyle = xlNone

ActiveCell = TextBox1
ActiveCell.Offset(0, 2).Value = TextBox2
ActiveCell.Offset(0, 1).Value = TextBox6
ActiveCell.Offset(0, 3).Value = TextBox3
TextBox4.Value = Replace(expression:=TextBox4.Value, Find:=' ', Replace:='')
ActiveCell.Offset(0, 4).Value = TextBox4
ActiveCell.Offset(0, 5) = TextBox5
Select Case MsgBox(' Voulez-vous en entrer un autre? ', vbYesNo)
Case vbYes
TextBox1 = ''
TextBox2 = ''
TextBox3 = ''
TextBox4 = ''
TextBox5 = ''
TextBox6 = ''
CommandButton9.Enabled = False
Range('A65000').End(xlUp).Offset(1, 0).Select
Case vbNo

End Select
End Sub


Bon courage
 
Merci chris, mes homages Pascal

OH que j'aimerais un jour programmer aulieu de copier des bout:

Dim UnOubli as boolean fonctionne mais pour moi sans comprendre le boolean.
J'essaie de ne copier rien dans mes codes que je ne peut expliqué ou voir tout bug pour une réparation ou un changement futur.
Je prend ta solution et entretemps j'étudie le boolen pour comprendre.
Je sais aussi que je peut faire un compteur pour vider les textbox.

Merci encore

Je revient plus tard

Temjeh
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
760
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
352
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…