Maudite erreur d'exécution '13': incompatibilité de type
bonjour à tous,
Mon programme fonctionne bien
1) Le bouton "concours" de la feuille "Menu" ouvre le UserForm "U_Inscription".
2) Le bouton Inscription joueur non membre de ce même Userform ouvre le UserForm U_NonMembres.
Jusqu'au moment ou
3) Le bouton Inscrire me génére le message cité en titre de ce post et bug sur la ligne en vert...
Je cherche depuis hier soir une solution mais n'en ai pas trouvé...
Private Sub CommandButton1_Click()
Dim LastRw As Long
With sh1
LastRw = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(LastRw, 1).Value = LastRw - 1
.Cells(2, 9).Value = .Cells(2, 9).Value + 1
.Cells(LastRw, 2).Value = Me.TextBox1.Value
.Cells(LastRw, 3).Value = Me.TextBox2.Value
If Me.CheckBox1 = True Then .Cells(LastRw, 4) = "X"
If Me.CheckBox2 = True Then .Cells(LastRw, 5) = "X"
If Me.CheckBox3 = True Then .Cells(LastRw, 6) = "X"
If Me.OptionButton1 = True Then
.Cells(LastRw, 7).Value = "H"
Else
.Cells(LastRw, 7).Value = "F"
End If
End With
Unload Me
End Sub
Quelqu'un peut'il me venir an aide ?...
Merci à ceux qui voudront bien essayer de résoudre mon problème.
Mon fichier joint:
Bonjour
Tu ne définies pas à quoi correspond sh1 !
Bye !
- Messages
- 308
- Excel
- 2016
- Inscrit
- 15/06/2017
- Emploi
- Bénéficiaire de la sécurité de la vieillesse
Bonjour atlonia, bonjour le fil, bonjour le forum,
Désolé de ma méprise..
Joseph
Bonjour atlonia, bonjour le fil, bonjour le forum,
En plus de la remarque pertinente de gmb...
Si tu pensais bien à la feuille "Inscriptions", .Cells(2, 9).Value = .Cells(2, 9).Value + 1 ... .Cells(2,9) est la cellule "i2".
On ne peut pas additionner 1 à une lettre.
Joseph
bonjour
évite de donner des nom au codename
A+
Maurice
Private Sub CommandButton1_Click()
Dim LastRw As Long
Set Sh = Inscriptions
With Sh
LastRw = .Cells(Rows.Count, 1).End(xlUp).Row + 1
.Cells(LastRw, 1).Value = LastRw - 1
.Cells(2, 9).Value = .Cells(2, 9).Value + 1
.Cells(LastRw, 2).Value = Me.TextBox1.Value
.Cells(LastRw, 3).Value = Me.TextBox2.Value
If Me.CheckBox1 = True Then .Cells(LastRw, 4) = "X"
If Me.CheckBox2 = True Then .Cells(LastRw, 5) = "X"
If Me.CheckBox3 = True Then .Cells(LastRw, 6) = "X"
If Me.OptionButton1 = True Then
.Cells(LastRw, 7).Value = "H"
Else
.Cells(LastRw, 7).Value = "F"
End If
End With
Unload Me
End Sub- Messages
- 308
- Excel
- 2016
- Inscrit
- 15/06/2017
- Emploi
- Bénéficiaire de la sécurité de la vieillesse
Bonjour atlonia, bonjour le fil, bonjour le forum,
Il y a aussi :
If Me.OptionButton1 = True Then
.Cells(LastRw, 7).Value = "H"
Else
.Cells(LastRw, 7).Value = "F"
End IfDonc, si je ne sélectionne pas OptionButton1 ou OptionButton2, ce sera forcément "F".
Go, Go, Go, ça avance ton projet
Joseph
gmb a écrit :Bonjour
Tu ne définies pas à quoi correspond sh1 !
Bye !
Bonjour gmd
Merci pour ta remarque pertinente et confirmée par retraite8...
A+
bonjour archer,
Tu as raison, j'avais lu quelque part sur le Web que c'était conseillé pour faciliter la lecture du code...
Je me suis rendu compte mais un peu tard qu ce n'était pas forcément vrai...
Pour ce projet, je vais devoir faire avec.
="archer"]bonjour
évite de donner des nom au codename
Cette solution ne règle pas mon problème, j'ai toujours cette maudite MsgBox avec le même message...
Private Sub CommandButton1_Click() Dim LastRw As Long Set Sh = Inscriptions With Sh LastRw = .Cells(Rows.Count, 1).End(xlUp).Row + 1 .Cells(LastRw, 1).Value = LastRw - 1 .Cells(2, 9).Value = .Cells(2, 9).Value + 1 .Cells(LastRw, 2).Value = Me.TextBox1.Value .Cells(LastRw, 3).Value = Me.TextBox2.Value If Me.CheckBox1 = True Then .Cells(LastRw, 4) = "X" If Me.CheckBox2 = True Then .Cells(LastRw, 5) = "X" If Me.CheckBox3 = True Then .Cells(LastRw, 6) = "X" If Me.OptionButton1 = True Then .Cells(LastRw, 7).Value = "H" Else .Cells(LastRw, 7).Value = "F" End If End With Unload Me End Sub
Merci de t'intéresser à mon soucis
si tu vois autre chose...
ça m'aiderait beaucoup!
Merci encore
Bonjour retraite8,
Je sais, dans la feuille "Problèmes de mon projet, je l'avais répertorié.
Ca fais partie des mises au point que je me réserve pour quand les problèmes de fonctionnement seront résolus.
Comme tu peux le voir, je ne suis pas au bout de mes peines...
retraite8 a écrit :Bonjour atlonia, bonjour le fil, bonjour le forum,
Il y a aussi :
If Me.OptionButton1 = True Then .Cells(LastRw, 7).Value = "H" Else .Cells(LastRw, 7).Value = "F" End IfDonc, si je ne sélectionne pas OptionButton1 ou OptionButton2, ce sera forcément "F".
Go, Go, Go, ça avance ton projet
Joseph
Si tu as une idée géniale pour régler celui de mon poste, c'est pas de refus...
Merci de toujours répondre présent.
En fait, la feuille "Inscription" ne comprend pas de colonne N°, mais quand on enregistre un joueur de la listView1, ça m'en crée une décalée dans la colonne "NOM", il faudrait arriver à éviter ça...!
Je pense que j'ai dû a un moment me faire des noeuds dans mes fichiers, et écraser le bon...
Merci à tous...
bonjour
et oui bon voila une autre solution
tu rajoute un textbox3 et sa change tout
Dim Ctrl As Control
Private Sub UserForm_Initialize()
For Each Ctrl In Me.Controls
Select Case Left(Ctrl.Name, 3)
Case "Tex"
' Ctrl.Value = ""
' Ctrl.BackColor = &H80000018
' Ctrl.ForeColor = &H80FF&
' Ctrl.Font.Name = "Arial Narrow"
' Ctrl.Font.Size = 14
' Ctrl.Font.Bold = True
Ctrl.Tag = "O"
End Select
Next Ctrl
TextBox3.Visible = False
End Sub
Private Sub TextBox1_Change()
TextBox1.Value = UCase(TextBox1.Value)
End Sub
Private Sub TextBox2_Change()
TextBox2.Value = Application.Proper(TextBox2.Value)
End Sub
Private Sub OptionButton1_Click()
TextBox3.Value = "H"
End Sub
Private Sub OptionButton2_Click()
TextBox3.Value = "F"
End Sub
Private Sub CommandButton1_Click()
Dim LastRw As Long
For L = 1 To 3
If Controls("TextBox" & L).Value = "" And Controls("TextBox" & L).Tag = "O" Then
If L = 3 Then
MsgBox "Choisir un sexe"
Else
MsgBox "Vous n'avez pas rempli ce champ", vbOKOnly + vbCritical, "Alerte"
Controls("TextBox" & L).SetFocus
End If
Exit Sub
End If
Next
Set sh1 = Inscriptions
With sh1
LastRw = .Cells(Rows.Count, 1).End(xlUp).Row + 1
' .Cells(LastRw, 1).Value = LastRw - 1
' .Cells(2, 9).Value = .Cells(2, 9).Value + 1
.Cells(LastRw, 1).Value = TextBox1.Value
.Cells(LastRw, 2).Value = TextBox2.Value
.Cells(LastRw, 3).Value = TextBox3.Value
If Me.CheckBox1 = True Then .Cells(LastRw, 4) = "X"
If Me.CheckBox2 = True Then .Cells(LastRw, 5) = "X"
If Me.CheckBox3 = True Then .Cells(LastRw, 6) = "X"
End With
Unload Me
End SubA+
Maurice
bonjour archer,
ça a effectivement rétabli l'affichage.
Il m'a fallu également rajouter la ligne:
.ListItems(.ListItems.Count).ListSubItems.Add , , sh1.Cells(L, 1)
dans l'initialisation de la ListView2 pour recaler son affichage ou la colonne NOM avait disparue...
mais du coup, c'était l'inscription au départ de la ListView1 qui posait problème...
quand je sélectionnais une ligne dans la listView1 et que j'appuyais sur "Inscrire au concours", je me retrouvais avec le N° dans la colonne NOM, le nom dans prénom...etc
et pareille dans la feuille "Inscription"
Donc, recalage des colonnes dans le code du bouton "Inscrire au concours" du UserForm "U_Inscription", et le tour et joué...
Grand merci à toi pour m'avoir sorti de ce petrin...
A+ pour de nouvelles aventures