[Résolu]Lancement de userform impossible

bendu31

XLDnaute Nouveau
Bonsoir,
Après moultes recherches sur le forum, impossible de trouver une réponse à mon problème !
Depuis quelques jours je développe en VBA un classeur de suivis de comptes.
Les données seront rentrées via un userform de ce type :
userform.jpg

Et ensuite redirigées vers cette feuille excel :
excel.jpg

J'ai bien tout codé en VBA, tout fonctionne, jusqu'à ce que je fasse une modification de la largeur du userform, et la ça ne veut plus du tout se lancer, j'ai une erreur 400 au niveau de mon DepenseForm.show, et même en essayant de mettre juste avant Unload DepenseForm, rien ne se passe.

Code:
Sub Depense()
DepenseForm.Show
End Sub

Sub Revenus()
RevenusForm.Show
End Sub
Voila mes deux macros qui me servent à lancer les userform depuis les boutons présents sur la feuille.

Et le code de la userform que j'ai renommé DepenseForm :

Code:
Private Sub Userform_initialize()
With categoriedepense
    .AddItem "Alimentaire"
    .AddItem "Assurances"
    .AddItem "Autre"
    .AddItem "Cadeaux"
    .AddItem "Cigarettes"
    .AddItem "Crédit"
    .AddItem "Epargne"
    .AddItem "Etat"
    .AddItem "Extras"
    .AddItem "Frais Bancaires"
    .AddItem "Internet/Téléphone"
    .AddItem "Logement"
    .AddItem "Loisirs"
    .AddItem "Santé"
    .AddItem "Véhicules"
    .AddItem "Divers pro"
End With
With comptedepense
    .AddItem "Loulou"
    .AddItem "Chouchou"
    .AddItem "Pro"
End With
With moisdepense
.AddItem "Janvier"
.AddItem "Février"
.AddItem "Mars"
.AddItem "Avril"
.AddItem "Mai"
.AddItem "Juin"
.AddItem "Juillet"
.AddItem "Aout"
.AddItem "Septembre"
.AddItem "Octobre"
.AddItem "Novembre"
.AddItem "Décembre"
End With
'transforme la date en format français jour/mois
'datedepense.Value = Format(Now(), "dd/mm") plus utile avec la séparation jour et mois

End Sub



Private Sub Commandannuler_Click()
    Unload DepenseForm
End Sub


Private Sub Commandvalider_Click()
'test de saisie de la date
    If Me.datedepense.Text = "" Then
    MsgBox "Vous devez entrer une date."
    Me.datedepense.SetFocus
    Exit Sub
    End If
'test de saisie du mois
    If Me.moisdepense = "" Then
    MsgBox "Vous devez choisir un mois."
    Exit Sub
    End If
'test de saisie d'un montant
    If montantdepense.Text = "" Then
    MsgBox "Vous devez entrer un montant."
    Exit Sub
    End If
'test de saisie de la catégorie
    If categoriedepense = "" Then
    MsgBox "Veuillez sélectionner une catégorie de dépense."
    Exit Sub
    End If
'Test de saisie de l'objet de la dépense
    If objetdepense = "" Then
    MsgBox "Veuillez saisir un objet."
    Exit Sub
    End If
'test de saisie du compte de dépense
    If comptedepense = "" Then
    MsgBox " Veuillez sélectionner un compte à débiter."
    Exit Sub
    End If
    
'mise en place des valeurs saisies à la suite des précédentes
Range("A65536").End(xlUp).Offset(1, 0).Value = Me.datedepense.Text
Range("B65536").End(xlUp).Offset(1, 0).Value = Me.moisdepense.Text
Range("C65536").End(xlUp).Offset(1, 0).Value = CCur(montantdepense.Text) * (-1)
Range("E65536").End(xlUp).Offset(1, 0).Value = Me.categoriedepense.Text
Range("F65536").End(xlUp).Offset(1, 0).Value = Me.objetdepense.Text
Range("G65536").End(xlUp).Offset(1, 0).Value = Me.comptedepense.Text
'défini la valeur 0 dans les revenus.
Range("D65536").End(xlUp).Offset(1, 0).Value = CCur("0,00")

'fait la somme des cellules en cumulé depuis le début
Cells(3, 9) = CCur(WorksheetFunction.Sum(Feuil1.Range("C3:C65000")) + WorksheetFunction.Sum(Feuil1.Range("D3:D65000")))




'fait la somme des dépenses effectuées en décembre
'compte le nombre de cellules non vides
Dim n As Single
n = Application.WorksheetFunction.CountA(Range("B:B"))
n = n - 1 'soustrait la valeur de l'entête
n = n + 3 'incrémentation de n commence à la 3ème ligne

For i = 3 To n
If Cells(i, 2) = "Décembre" Then
somme = somme + Cells(i, 3).Value
End If
Next i

Cells(3, 8) = somme

' fermeture du userform
Unload DepenseForm
        
End Sub


Private Sub montantdepense_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If KeyAscii = 46 Then KeyAscii = 44
'Transforme le point en virgule pour être interprété en nombre
End Sub

Je ne sais plus quoi faire ! Je ne comprends pas pourquoi cela ne fonctionne plus :(

Pouvez vous m'aider ?

Merci
 

Pièces jointes

  • userform.jpg
    userform.jpg
    69 KB · Affichages: 222
  • userform.jpg
    userform.jpg
    69 KB · Affichages: 220
  • excel.jpg
    excel.jpg
    32.7 KB · Affichages: 175
  • excel.jpg
    excel.jpg
    32.7 KB · Affichages: 180
Dernière édition:

bendu31

XLDnaute Nouveau
Re : Lancement de userform impossible

Bonsoir,

Merci pour votre réponse,
J'ai vu oui que l'erreur 400 ne signifiait pas grand chose, je poste donc la feuille excel complète en pièce jointe, je n'ai pas voulu le faire au début car certaines macros ne sont pas sûr il parait !

Bonne soirée
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
236
Réponses
15
Affichages
426

Statistiques des forums

Discussions
311 715
Messages
2 081 822
Membres
101 822
dernier inscrit
holale