Incomptabilité de type + userform

WilsonMD

XLDnaute Nouveau
Bonjour,

J'ai un problème avec mes UserForm, vba me met une erreur 13 "incomptabilité de type" lorsque je veux les utiliser. Tout fonctionnait bien il y a quelques heures et sans raison et sans modifier le code cela ne fonction.
Quand je vais sur frm : cela me marque que l'object n'est pas définit et que frm = rien

J'ai un premier userform où l'on renseigne un n° de demande et fonction de celui-ci cela ouvre un seconde qui reprend les infos de cette demande pour les modifier.

Cette instabilité est-elle du à un problème au niveau de Dim, des références? Il se répète sur plusieurs de mes fichiers.

Voici le code

Private Sub CommandButton1_Click()
Dim i As Double, j As Double, frm5 As Object, fin As Double, frm As Object
Set frm = UserForm2
Set frm5 = UserForm5
fin = ThisWorkbook.Worksheets(1).Range("A65536").End(xlUp).Row
Debug.Print fin

If Not IsNumeric(UserForm5.TextBox1.Value) Then
MsgBox ("Erreur" & (Chr(10) & Chr(10) & "Valeur non numérique interdite") & Chr(10) & Chr(10) & _
"Pour éviter un bug vous allez quittez le formulaire")
Unload frm5
Worksheets(1).Protect Password:="8790"
Exit Sub
End If

For i = 9 To fin
For j = 1 To 1
If Cells(i, j) = CDbl(UserForm5.TextBox1.Value) Then
Cells(i, 1).Select
unload frm5
load frm
frm.show
GoTo 2

End If
Next
Next i

MsgBox ("erreur" & Chr(10) & Chr(10) & "La demande n'existe pas")

2

End Sub

Merci d'avance je n'arrive pas à m'en sortir avec ce problème récurrent
 

jp14

XLDnaute Barbatruc
Re : Incomptabilité de type + userform

Bonjour

Au lieu de déclarer les userforms comme des objets (frm5 As Object)
les déclarer comme des userforms dans un module
public frm5 As MSForms.UserForm
Et à l'initialisation de l'userfom écrire pour affecter l'userform à la variable Set frm = Me, ce qui implique de le charger (Load) éventuellement avant de le rendre visible (Show)

A tester

JP
 
Dernière édition:

WilsonMD

XLDnaute Nouveau
Re : Incomptabilité de type + userform

Merci pour ces infos je ne comprend cependant pas tout. Je dois donc placer le code du userform dans un module et l'appeler à partir du module?

Que signifie Me?

Est-ce que je peux te mettre le fichier pour tu me montres concrètement la synthaxe?
 

kjin

XLDnaute Barbatruc
Re : Incomptabilité de type + userform

Bonjour, salut JP :),
Avec le décodeur, ça pourrait être qq chose comme ceci
Code:
Private Sub CommandButton1_Click()
Dim i%, fin%, trouve As Boolean  'pourquoi déclarer un N° de ligne en Double ???
trouve = False
If Not IsNumeric(TextBox1.Value) Then
    MsgBox ("Erreur" & (Chr(10) & Chr(10) & "Valeur non numérique interdite") & Chr(10) & Chr(10) & _
    "Pour éviter un bug vous allez quittez le formulaire")
    Unload Me '??? pourquoi sortir
    Worksheets(1).Protect Password:="8790"
    Exit Sub
End If
With Worksheets(1)
    fin = .Range("A65536").End(xlUp).Row
    For i = 9 To fin
    'For j = 1 To 1 '???? inutile mais drôle
        If Cells(i, 1) = CDbl(TextBox1.Value) Then
            Cells(i, 1).Select '???
            trouve = True
            Unload Me
            UserForm2.Show
            Exit For
        End If
    Next
End With
If Not trouve Then MsgBox ("erreur" & Chr(10) & Chr(10) & "La demande n'existe pas")
End Sub
Lorsque tu ne connais pas la signification d'un terme, il suffit de le mettre en surbrillance et d'appuyer sur la touche F1, l'aide VBE s'ouvrira sur le terme sélectionné
A+
kjin
 

WilsonMD

XLDnaute Nouveau
Re : Incomptabilité de type + userform

Désole pour les incohérences je travailla sous VBA seulement depuis un mois et je n'ai jamais suivi de cours

En fait c'est un user form et quand on clique sur valider cela ouvre un second qui va reprendre les infos de la ligne sélectionnée avec Offset... dans ces textbox

D'où le cells(i,j).Select qui donne la ligne de départ
Comme je manie deux user form dans un seul code

le userform5 ou l'on écrit le n°de demande puis le userform2 qui s'ouvre avec les données à modifier

comment puis-je faire comme il y aun seul Me?
 

WilsonMD

XLDnaute Nouveau
Re : Incomptabilité de type + userform

Cela ne marche pas. J'arrive à sélectionner la cellule voulue (celle qui correspond au numéro de demande)

Mais impossible de charger le second formulaire

Puis-je vous mettre le fichier pour que cela soit plus clair pour vous?

Merci pour ces premiers éléments
 

jp14

XLDnaute Barbatruc
Re : Incomptabilité de type + userform

Bonsoir
Salut kjin

Quand on désire transmettre des informations d'un userform (quand ils ne sont pas chargés en mémoire) à un autre, le plus simple consiste à utiliser des variables publiques.


Un exemple d'utilisation d'une variable MSForms.UserForm.
L'userform est chargé pour initialiser la variable usf
Dans la macro de classe on utilise cette variable pour désigner l'usf.
https://www.excel-downloads.com/threads/designation-de-valeur-dans-une-listbox.152799/

Me dans le code représente l'userform. En utilisant Me. on retrouver le le nom des contrôles.

JP
 

WilsonMD

XLDnaute Nouveau
Re : Incomptabilité de type + userform

Voici le fichier, ne vous inquiétez pas pour les rapprochement j'ai masqué les infos c'est pr cela qu'il y a des chiffres partout!

Le userform5 n'est plus lancé par aucun bouton. J'ai abandonné pour l'instant l'idée de lancer un user form à partir d'un autre. Pourriez vous m'expliquer comment et où déclarer correctement mon userform2 (module? module de classe?...)afin que cela ne me fasse pas une erreur13 et que je puisse me débrouiller comme un grand et l'appliquer à tous mes fichiers qu'ils ne soient plus instables.


Le userform1 et le 3 se lance bien, je ne sais pas pk et jusque quand puisque le userForm2 fonctionnait ce matin mais est terriblement instable.

Un grand merci je suis vraiment désemparé
 

WilsonMD

XLDnaute Nouveau
Re : Incomptabilité de type + userform

Bon mon fichier est trop gros il ne passe pas, j'ai fait un petit truc vite fait. C'est sur une formulaire comme celui ci que cela me met erreur 13 quand je veux le charger.


Pourriez-vous juste m'expliquer comment et où déclarer mon UserForm pour éviter ce type d'erreur.

merci
 

jp14

XLDnaute Barbatruc
Re : Incomptabilité de type + userform

Bonjour

Ci joint un fichier avec des exemples pour passer des informations d'un userform a un deuxième userform avec gestion du bouton "quitter"

Bon week end

JP
 

Pièces jointes

  • WilsonMD.zip
    16 KB · Affichages: 58

Discussions similaires

Réponses
2
Affichages
300
Réponses
7
Affichages
405

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 976
dernier inscrit
kaizertv2001@gmailcom