Novice - Erreur de compilation : Else sans If !

Llyod

XLDnaute Nouveau
Bonsoir,

Je bloque depuis une journée sur cette erreur de compilation. J'ai parcouru les forums en long et en large, et je sais que cette erreur vient du fait que la structure de ma condition n'est pas bonne. J'ai essayé d'ajouter des alinéas sans succès.

Voici mon code :

Private Sub commandbutton1_Click()

'Condition remplissage pour écrire dans le tableau -->

If (TextBox1.Value <> "" And TextBox2.Value <> "" And TextBox3.Value <> "" And TextBox4.Value <> "") Then

'Valeur de la case Nom dans le tableau
Dim a As Integer

With Worksheets("Feuil1")
'Déclaration de la variable "der_cell"
a = Columns("C").Find("", Range("C1"), xlValues).Row 'variable = recherche de la dernière ligne de la colonne "C"
Cells(a, "C") = TextBox1


'Valeur de la case Prénom dans le tableau
Dim der_cell2 As Integer
der_cell2 = Columns("D").Find("", Range("D1"), xlValues).Row
Cells(der_cell2, "D") = TextBox2

'Valeur de la case Licence dans le tableau
Dim der_cell3 As Integer
der_cell3 = Columns("E").Find("", Range("E1"), xlValues).Row
Cells(der_cell3, "E") = TextBox3

'Valeur de la case Villes dans le tableau
Dim der_cell4 As Integer
der_cell4 = Columns("F").Find("", Range("F1"), xlValues).Row
Cells(der_cell4, "F") = TextBox4

Unload Me
Else

'Vérification Textbox rempli sinon messagebox
If TextBox1.Value = "" Then MsgBox "Indiquez le nom du joueur"

'Vérification Textbox rempli sinon messagebox
If TextBox2.Value = "" Then MsgBox "Indiquez le prenom du joueur"

'Vérification Textbox rempli sinon messagebox
If TextBox3.Value = "" Then MsgBox "Indiquez le numéro de licence sinon inscrire non-licencié"

'Vérification Textbox rempli sinon messagebox
If TextBox4.Value = "" Then MsgBox "Indiquez une ville"

End If
End With

Application.ScreenUpdating = True
Worksheets("Tournoi").Activate


End Sub


Merci pour l'aide !

Baptiste
 
Dernière modification par un modérateur:

Roland_M

XLDnaute Barbatruc
Re : Novice - Erreur de compilation : Else sans If !

bonsoir,

c'est ton End With qui va avec With Worksheets("Feuil1") qui est trop loin !

il ne peut se trouver qu'après Then et With Worksheets("Feuil1") mais avant Else !

à mon avis juste avant Unload Me


EDIT:
de plus ton code ne peut pas fonctionner comme ça
car tu as With Worksheets("Feuil1")
et tu ne te réfères pas à cette feuille mais à une feuille active
car ne ne mets pas de point devant par exemple Cells(....

With Worksheets("Feuil1")

ici
a = Columns("C").Find("", Range("C1"), xlValues).Row 'variable = recherche de la dernière ligne de la colonne "C"
Cells(a, "C") = TextBox1

ça doit être avec un point devant Columns et Cells( si tu veux faire référence à la feuille avec With Feuil1
a = .Columns("C").Find("", Range("C1"), xlValues).Row 'variable = recherche de la dernière ligne de la colonne "C"
.Cells(a, "C") = TextBox1
 
Dernière édition:

Llyod

XLDnaute Nouveau
Re : Novice - Erreur de compilation : Else sans If !

Nan car quand j'ai essayé, il me les marquait sur une autre feuille, j'ai contourner le problème en rajoutant après le then "Worksheets("Feuil1").Activate"

Il faut mieux que je m'oriente plutot vers ta solution ?

Merci en tout cas :)
 

Llyod

XLDnaute Nouveau
Re : Novice - Erreur de compilation : Else sans If !

Le problème s'est que je l'ai déjà dit de l'activer juste avant

Private Sub UserForm_initialize()

Worksheets("Feuil1").Activate
News_joueur.TextBox3.Value = Sheets("Feuil1").Range("L20").Value

End Sub

Pour que ça soit plus propre, je devrais mettre des points ?
Merci de m'apprendre à coder proprement sans que ça soit une usine a gaz :D
 

Roland_M

XLDnaute Barbatruc
Re : Novice - Erreur de compilation : Else sans If !

re

gardes avec activate car tu vas avoir des problèmes

parce que si tu fais
With Worksheets("Feuil1")
et que tu met
Cells(1,1) = ""
alors c'est pas forcément la cellule de la feuil1 si elle n'est pas active ! c'est peut être la feuil2 ou autre
pour y faire référence il faut mettre un point devant cells
With Worksheets("Feuil1")
.Cells(1,1) = ""

c'est comme si tu faisais
Worksheets("Feuil1").Cells(1,1)=""


sauf erreur de ma part tu vérifies car je sais pas ce que tu fais, mais ça devrait ressembler à ça !?

Code:
Private Sub commandbutton1_Click()

'Condition remplissage pour écrire dans le tableau -->
If (TextBox1.Value <> "" And TextBox2.Value <> "" And TextBox3.Value <> "" And TextBox4.Value <> "") Then

   'Valeur de la case Nom dans le tableau
   Dim a As Integer

   Sheets("Feuil1").Activate
   'Déclaration de la variable "der_cell"
   a = Columns("C").Find("", Range("C1"), xlValues).Row 'variable = recherche de la dernière ligne de la colonne "C"
   Cells(a, "C") = TextBox1

   'Valeur de la case Prénom dans le tableau
   Dim der_cell2 As Integer
   der_cell2 = Columns("D").Find("", Range("D1"), xlValues).Row
   Cells(der_cell2, "D") = TextBox2

   'Valeur de la case Licence dans le tableau
   Dim der_cell3 As Integer
   der_cell3 = Columns("E").Find("", Range("E1"), xlValues).Row
   Cells(der_cell3, "E") = TextBox3

   'Valeur de la case Villes dans le tableau
   Dim der_cell4 As Integer
   der_cell4 = Columns("F").Find("", Range("F1"), xlValues).Row
   Cells(der_cell4, "F") = TextBox4

   Worksheets("Tournoi").Activate: Application.ScreenUpdating = True
   Unload Me

Else
 
   'Vérification Textbox rempli sinon messagebox
   If TextBox1.Value = "" Then MsgBox "Indiquez le nom du joueur"

   'Vérification Textbox rempli sinon messagebox
   If TextBox2.Value = "" Then MsgBox "Indiquez le prenom du joueur"

   'Vérification Textbox rempli sinon messagebox
   If TextBox3.Value = "" Then MsgBox "Indiquez le numéro de licence sinon inscrire non-licencié"

   'Vérification Textbox rempli sinon messagebox
   If TextBox4.Value = "" Then MsgBox "Indiquez une ville"

End If

Worksheets("Tournoi").Activate: Application.ScreenUpdating = True
End Sub
 

Roland_M

XLDnaute Barbatruc
Re : Novice - Erreur de compilation : Else sans If !

re

si c'est la dernière ligne occupée que tu veux voir ceci:
a = Columns("C").Cells(Rows.Count).End(xlUp).Row

à la place de :
a = Columns("C").Find("", Range("C1"), xlValues).Row 'variable = recherche de la dernière ligne de la colonne "C"
 

Llyod

XLDnaute Nouveau
Re : Novice - Erreur de compilation : Else sans If !

Merci, es-ce que tu pourrais me l'expliquer en détail, je comprend pas bien ce qu'elle fait avec rows, count, xlUp..

EDIT: J'ai aussi une autre question qui aura peut être plus d'intérêt dans un autre sujet !

Je suis actuellement entrain d'automatiser la rentrée des points des joueurs d'un tournoi pour que ça soit le plus simple possible avec l'apparition d'userforms avec dans chacun des listbox, combobox et textbox.
Le problème étant que mes useforms sont adapté à ma résolution et quand j'ai voulu le charger sur un autre ordinateur, les userforms étaient gigantesques..

Il y a t-il un moyen pour que les userforms et leurs contenus s'adaptent à la résolution de l'écran ?

Merci
 
Dernière modification par un modérateur:

Roland_M

XLDnaute Barbatruc
Re : Novice - Erreur de compilation : Else sans If !

re

alors en vitesse car ma bourgeoise s'impatiente !

tu fais msgbox Rows.Count et tu verras le nombre de ligne qu'il y a dans une feuille selon les versions excel

en faisant simple,
ceci effectue dans la colonne C depuis la dernière ligne de la feuille remonte (xlup) jusqu'à la première cellule occupée
et me donne le no de ligne puisque j'ai mis au bout .Row


allez bonne nuit à toi et au plaisir
 

Discussions similaires

Réponses
6
Affichages
280