Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2011, 10h17   #1
Invité régulier
 
Femme
Étudiant
Inscription : août 2011
Messages : 63
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 63
Points : 6
Points : 6
Par défaut Problème If - ElseIf

Bonjour,

J'ai crée le code suivant qui teste plusieurs conditions
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Private Sub CommandButton1_Click()
 
If TextBox1.Text = "" And TextBox2.Text = "" And TextBox3.Text = "" Then
MsgBox "Rentrer une valeur"
 
End If
 
If TextBox1.Value <> "" Then MsgBox "OK text 1"
 
ElseIf TextBox2.Value <> "" Then MsgBox "OK text 2"
 
ElseIf TextBox3.Value <> "" Then MsgBox "OK text 3"
 
Else: MsgBox "Rentrer une valeur"
 
 
End If
 
 
End Sub
C'est un code assez basique qui doit me servir de base pour faire un peu plus compliqué ensuite. Je rencontre cependant un problème au niveau de mon bloc ElseIf en effet VBA me renvoit une erreur a chaque fois me disant que Else n'a pas de If et je dois dire que là je ne vois pas pourquoi.


Si vous pouviez me dépanner! Merci à vous

Julien
JulienLeno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 10h25   #2
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 592
Points : 1 592
Envoyer un message via MSN à carden752
Bonjour,

Il ne faut pas mettre ":" après else, c'est un nom d'étiquette sinon vers où tu renvoies et avec un mot réservé du langage, c'est pas terrible.

Code :
Else MsgBox "Rentrer une valeur"
__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 10h52   #3
Invité régulier
 
Femme
Étudiant
Inscription : août 2011
Messages : 63
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Industrie

Informations forums :
Inscription : août 2011
Messages : 63
Points : 6
Points : 6
En fait les ":" après le Else se mette automatiquement quand je fais entrer. Mais j'ai résolu mon soucis en mettant à la ligne à chaque fois après le Then. Cà fonctionne, voilà mon code.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Private Sub CommandButton1_Click()
 
Dim iL As Long
Dim P As Worksheet
Dim M As Worksheet
 
Set P = Worksheets("Sheet2")
Set M = Worksheets("Sheet3")
 
iP2 = Sheet1.Cells(100, 1).Value
 
If TextBox1.Value <> "" Then
 
 For iL = 1 To 20
 
            If P.Cells(iL, 2).Text = TextBox1.Text Then
               P.Rows(iL).Copy M.Cells(iP2, 1)
 
            iP2 = iP2 + 1
            End If
 
        Next
M.Select
 
ElseIf TextBox2.Value <> "" Then
MsgBox "OK text 2"
 
ElseIf TextBox3.Value <> "" Then
MsgBox "OK text 3"
 
Else: MsgBox "Rentrer une valeur"
 
 
End If
 
 
End Sub
Ce n'est plus vraiment le même car je donne une autre instruction après le premier Then mais la logique est la même.

Merci

Julien
JulienLeno est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h16.


 
 
 
 
Partenaires

Hébergement Web