Err Debogage 13 + Donnée d'un Userform saisi sur 2feuilles

Bonjour à la communauté,

Grâce à différents tutos, j'ai réussi à mettre en forme un formulaire et de coder les actions que je veux, à ma dernière sauvegarde le formulaire fonctionnait très bien, malgré des points d'amélioration, or lorsque j'ai réouverts mon fichier quand je clique pour ouvrir mon formulaire, j'ai ce message d'erreur qui apparait

capture1

Avec ce message en Débogage..

capture2

Je ne comprends pas où est le problème, je n'ai rien touché..

*********************************

Aussi j'aimerai savoir comment coder que je veux certaines infos (cf photo) dans la feuille DA puis d'autres infos dans les feuilles DA + dans la feuille Achats ( qui correspond à mon tableau de suivi des commendes réalisés, dans celui là ce qui m'intéresse c'est seulement d'avoir le montant TOTAL ht et non le détails avec les articles )

Dans l'idée ce qui s'affiche dans cette partie, serait saisi seulement dans l'encadrer correspondant sur ma feuille DA

capture3

Comme vous pouvez le constater sur mon classeur, mon essai a été partiellement concluant,

Le formulaire fonctionne dans le sens où les liaisons souhaitées se font le bouton Ajouter me permet d'obtenir ce que je veux, le bouton de création alimente la bonne feuille et le tableau "correctement"

Les bémols sont la colonne Montant HT (mais je pense que c'est pcq les infos ne sont pas renseignées au bon endroit) et l'affichage du N°DA dans le Userform qui ne passe pas au suivant..

Je n'arrive plus à m'en sortir surtout depuis que le formulaire indique un BUG

D'autant que je viens de me rendre compte que mes feuilles DA et Bon de commande devront être remise à 0 à la fermeture du fichier.. et donc que mes liaisons ne vont pas non plus.. Help me Pleaaase

Mercii aux âmes charitables qui sauront m'aider

Bonjour, votre userform_initialize fait planter.

Private Sub UserForm_Initialize()
'Permet d 'afficher le n°de DA en cours dans le formulaire, à partir du tableau sur la feuille config
'Me.Label_info.Caption = Sheets(5).Range("E10") + 1


End Sub

désactivez la ligne en couleur et votre userform sera de nouveau opérationnel.

En effet Merci!

Mais je ne comprends pas cette ligne ne faisait pas planter mon formulaire jusqu'à présent, et me permettait d'afficher le n°DA en cours de création sur la boite de dialogue.. :/

Il n'y a rien en E10 de la feuille 5

Bonjour,

[EDIT] : Feuil5 n'est pas la Sheets(5) !

le bug provient bien de cette ligne :

Me.Label_info.Caption = Sheets(5).Range("E10") + 1

Comment voulez vous ajouter +1 à "DASR21_0001" ???

Vous débutez en VBA prenez de bonnes habitudes :

Sheets(5) 'devraient être bannis
'utilisez :
Feuil8.Range("E10") 'ou :
Sheets("CONFIG").Range("E10")

Bannissez le Undescore de vos noms et variables.

Utilisez des standards usuels pour préfixer vos contrôles et variables et utilisez des noms courts et suffisamment évocateurs : Vous y gagnerez en lisibilité, et moins il y a de caractères moins vous risquez d'en oublier !

Attention toutefois aux non trop courts "n1" n'est pas un nom correct (on ne sait pas s'il faut taper n1 ou nl ?

Pas de nom de variables avec une seule lettre "i", "j", "k"... Quand on veut faire une recherche c'est impossible de les retrouver...

Me.tbRef = ""
Me.tbQte = "" 'sans accent !
Me.tbPxUnit = ""
Me.lblPxHT = ""
Me.tbDOrdre = ""
Me.tbImpProj = ""
Me.tbClient = ""
Me.tbFour = ""
Me.tbDesi = ""
usfDA 'plutôt que FormulaireDA
cmdValid 'plutôt que CommandButton1
cboOrder ou ListOrder

Au final cette macro devrait corriger l'erreur :

Private Sub UserForm_Initialize()
Me.lblInfo.Caption = Feuil8.Range("C10") & Format(Feuil8.Range("D10") + 1, "0000")
End Sub

A+

capture4

@Xmenpl Il s'agit du format que je veux donner à mes numéro d'achat

@galopin01

Merci pour tes conseils! Le code fonctionne par contre il ne change pas sur la boite de dialogue si je lance un second formulaire, il reste sur "0001".. Au lieu de passer à "0003"

capture5

La formule se base désormais sur la cellule D10 au lieu de E10 c'est donc elle qu'il faut incrémenter de + 1 à chaque validation.

donc dans le code de ta validation à la fin du dois mettre un :

Feuil8.Range("D10")=Feuil8.Range("D10") + 1

Sinon tu te réfères toujours au même n° d'ordre...

A+

Rechercher des sujets similaires à "err debogage donnee userform saisi 2feuilles"