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:

15petouliers-final.xlsm (552.34 Ko)

Bonjour

Tu ne définies pas à quoi correspond sh1 !

Bye !

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

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 If

Donc, 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 If

Donc, 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 Sub

A+

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 lol

Rechercher des sujets similaires à "maudite erreur execution incompatibilite type"