Variable Titre onglet - Problème de syntaxe ?

Bonjour, je viens vers vous car j'ai un problème dans mon code VBA. Je pense que c'est un problème au niveau de la syntaxe, Excel ne doit pas comprendre qu'il dot reprendre ma variable du UserForm ou autre, je ne sais pas trop.

j'ai mi une ligne entre crochet, il s'agit d'un test pour voir si cela fonctionne comme ça et oui cela fonctionne mais je vais l'enlever ensuite. Je veux récupérer ma valeur d'une Listbox (1stInput) qui est le titre de mon onglet.

Function TestDialogListe()
 Dim TextBox1 As Integer
 Dim lstInput As String
 Dim ListBox2 As Variant
 Dim derLigne As Long
 Dim Défaut As Integer

With New frmDiagList
    .Caption = "Saisie de données"
    .lstInput.Value = "Embase 1"
    .Show

    If .DiagOK Then

[lstInput = "Embase 1"]

Sheets(lstInput).Select

        derLigne = Range("A" & Rows.Count).End(xlUp).Row
        'Sheets("Suivi").Range("A" & derLigne + 1).Value = Format(Now, "mm/dd/yyyy")
        'Sheets("Suivi").Range("B" & derLigne + 1).Value = .lstInput.Value

        'If .TextBox1 <> "" Then Sheets("Suivi").Range("I" & derLigne + 1).Value = .TextBox1.Value

    Else
        MsgBox "Saisie annulée"
    End If
End With
Unload frmDiagList
'Worksheets("Suivi").Protect "po"
End Function

Merci d'avance

Je peux rajouter le code du UserForm si cela peut-être utile

Bonjour,

Pas sûr ... essai ceci ...

Dim lstInput As Worksheet au lieu de string ...

ric

Cela ne change rien :/ Erreur de type 13. J'ai mis un fichier de test

5test.zip (43.26 Ko)

Bonjour,

Une fois le formulaire ouvert et la feuille choisie dans le listbox "Quelle ?"

Quelles actions veux-tu faire ensuite ?

ric

Bonjour, désolé

Le "quelle ?", c'est pour choisir la feuille. Je n'ai pas encore fait la mise en forme. Les autres ListBox ou zone de texte compléteront des lignes situées dans le tableau de la feuille choisit dans la listBox "quelle". Ce sera compléter à chaque fois sur une ligne vierge en descendant vers le bas mais le code est déjà fais pour ça

Bonjour,

on n'utilise pas les noms déjà utilisés pour des variables : lstInput c'est le nom de ta listebox !!!!

Ta variable tu l'appels : Dim Mafeuille as string

ensuite tu écris de : Mafeuille=lstInput.text

par la suite comme tu écriras : Sheets(Mafeuille).Select ta variable Mafeuille est à déclarée en string pas en worksheets.

Par contre c'est un peu le bazard sur ton fichier ! Tu peux expliquer l'intérêt d'aller inscrire ton vba dans une funtion au lieu de mettre le code

vba directement dans le Bouton "OK" ???

3test-3.xlsm (269.37 Ko)
3test.zip (42.07 Ko)

Bonjour,

Je viens d'essayer ce que tu m'as proposé mais j'ai toujours une erreur "qualificateur incorrect" à l'ouverture du fichier.

Oui je pense que ce n'est pas optimisé, je me suis mis récemment au VBA et j'ai toujours fais comme ça

3test.zip (42.07 Ko)

Bonjour,

Je viens d'essayer ce que tu m'as proposé mais j'ai toujours une erreur "qualificateur incorrect" à l'ouverture du fichier.

Oui je pense que ce n'est pas optimisé, je me suis mis récemment au VBA et j'ai toujours fais comme ça

Tu viens d'essayer quoi ? Ta version avec Function TestDialogListe()

Ou ma version avec le code dans le bouton ?

ok Vu c'est le code à l'ouverture du fichier excel qui renvoi ta fontion ….. vires moi ce :

Sub Workbook_Open()
Call TestDialogListe
End Sub

A la limite tu remplaces par l'ouverture de ton userform à l'ouverture du fichier.

Sub Workbook_Open()

frmDiagList.Show

End Sub

Modifications effectuées dans le fichier du précédent message : test3

le code est dans le bouton ok ….. la "funtion" peut être jetée à la poubelle.

Je n'ai rien dis, ton fichier marche nickel enfaîte merci beaucoup, j'ai supprimé ce que tu m'as dis. Le fichier est quasi finis, j'ai juste encore une erreur de qualificateur sur la suite de la Macro.

2test-3.xlsm (268.38 Ko)

Pourtant j'ai fais la même méthode qu'au dessus j'ai l'impression

Tu as fait las même erreur que la première fois : Tu a déclaré ta Listbox2 dans les variables …. Un objet du userform n'est pas une variable ! c'est son contenu qui

qui peut être une variable : Mafeuille est la variable du contenu de lstInput donc on déclare Mafeuille Dim Mafeuille as string pas lstinput

Num est la variable du contenu de Listbox2 …. même chose on ne déclare pas Listbox2 mais Num

 Dim TextBox1 As Integer
 Dim Mafeuille As String
 Dim ListBox2 As String    ' LIGNE A SUPPRIMER  C'EST NUM LA VARIABLE
 Dim derLigne As Long
 Dim D?faut As Integer
 Dim Num As String

Mafeuille = lstInput.Text
Num = ListBox2.Text
Sheets(Mafeuille).Select

Bonjour,

Ha oui c'est vrai .. exactement la même erreur mdr. J'avais compris qu'il fallait mettre les 2 dans les variables. En tout cas j'ai compris mon erreur.

Je pense que tout fonctionne là, je vais mettre ça au propre sur mon vrai fichier.

Merci énormément

Rechercher des sujets similaires à "variable titre onglet probleme syntaxe"