Userform et déclaration de variable

Fermé
MrLafa Messages postés 9 Date d'inscription vendredi 3 mars 2017 Statut Membre Dernière intervention 6 mars 2017 - 6 mars 2017 à 13:23
MrLafa Messages postés 9 Date d'inscription vendredi 3 mars 2017 Statut Membre Dernière intervention 6 mars 2017 - 6 mars 2017 à 18:00
Bonjour,

Je réalise un userform qui sert d’interface pour injecter des données, textes et images, dans une BDD externe

Alors que tout marché plutôt bien, à force de modification, des difficultés avec les déclaration de variables sont apparu, je débute avec le VBA mes connaissance sont donc un peu limité

Après avoir inscrit les différentes données, l'utilisateur clic sur un bouton pour enregistrer les données

C'est un ce moment là d'une erreur "424 Objet requis" apparaît.
Après quelques test j'en ai déduit un soucis avec mes variables

Voici le code que j'utilise, on m'a parler de Option Explicit mais n'en saisi pas les subtilité...
Je pourrais joindre le fichier en privée si besoin

Private Sub UserForm_Initialize()

'Application.Visible = False

'Date
Me.TextBox131.Text = Format(Now, "dd/mm/yyyy")

'Format date
Me.TextBox156.Text = Format(Now, "yy")

'Chemin base de donnée
Workbooks.Open ("N:\xxxxx\xxxxxxxxx\xxxxxxxxxxx\xxxxxx\BDD_en_cours.xlsx")

Application.Wait Now + TimeValue("0:00:02")


Dim BDD As Worksheet
Dim MNC As Worksheet
Dim FPF As Worksheet
Dim PLV As Long
Dim DLP As Long


'feuille BDD
Set BDD = Workbooks("BDD_en_cours.xlsx").Sheets("BDD")

'feuille maquette NC
Set MNC = Workbooks("BDD_en_cours.xlsx").Sheets("Maquette NC")

'feuille parametre
Set FPF = Workbooks("BDD_en_cours.xlsx").Sheets("FPF Finale")

'Premiere Ligne vide
PLV = BDD.Range("A1").End(xlDown).Offset(1, 0).Row

'Derniere Ligne Plein
DLP = BDD.Range("A1").End(xlDown).Row

'Increment référence
If BDD.Range("A3") = "" Then
Me.TextBox157.Text = "1"
Else: Me.TextBox157.Text = BDD.Range("S" & DLP).Value + 1
End If

End Sub

Private Sub CommandButton12_Click()

'copie des données vers BDD

With BDD

.Range("A" & PLV) = TextBox11.Value
.Range("B" & PLV) = TextBox118.Value
.Range("C" & PLV) = TextBox9.Value
.Range("D" & PLV) = TextBox10.Value
.Range("E" & PLV) = TextBox162.Value
.Range("F" & PLV) = TextBox21.Value
.Range("G" & PLV) = TextBox22.Value
.Range("H" & PLV) = TextBox24.Value
.Range("I" & PLV) = TextBox163.Value

.
.
.

End with

End sub

1 réponse

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
6 mars 2017 à 14:56
Bonjour,

Dim PLV As Long


a mettre tout en haut de la page VBA de l'UF pour avoir cette variable utilisable sur toute cette page
0
MrLafa Messages postés 9 Date d'inscription vendredi 3 mars 2017 Statut Membre Dernière intervention 6 mars 2017
6 mars 2017 à 18:00
En dehors de toute "procédure"? Non encadré pas un "sub" "end sub"?

J'essais tout ça demain
0