ADOX CATALOG lister noms feuilles sans $

Regueiro

XLDnaute Impliqué
Bonjour à tous
j'aimerais lister les noms de feuilles d'un classeur xlsm masquée.
Mais sans les $ uniquement les noms de feuilles.
je vous joint mes fichiers.

Aller dans le fichier Prog Devis, dans la feuille ART.001 double click en E19
et l'userfom s'ouvre.
Il liste bien les feuilles du fichier fermé mais
Comment supprimer ces $
Merci de votre Aide.
 

Pièces jointes

  • Prog Devis V01.11 _ USF.zip
    946.8 KB · Affichages: 147
G

Guest

Guest
Re : ADOX CATALOG lister noms feuilles sans $

Re,

Bonjour Fo_rum,:D

s'il passe par là:
If InStr(xlSheet.Name, "$") = 0 Then
nom = xlSheet.Name
Else
nom = Left(xlSheet.Name, InStr(xlSheet.Name, "$") - 1)
End If

Il aura aussi les plage nommées et plage système comme les plage d'impression dans ces listes, et je crois (voir posts précédents) qu'il n'en veut pas.

A+
 
G

Guest

Guest
Re : ADOX CATALOG lister noms feuilles sans $

Re,

Dans
Code:
 For Each xlSheet In cat.Tables
Dim nom As String
If InStr(xlSheet.Name, "$") = 0 Then
nom = xlSheet.Name
Else
nom = Left(xlSheet.Name, InStr(xlSheet.Name, "$") - 1)
End If
ComboBox1 = nom
If ComboBox1.ListIndex = -1 Then ComboBox1.AddItem nom
Next

Tu prends tout. Que le nom contienne $ ou pas. tu enlèves juste le $ des tables Feuilles mais les autres tu les acceptes.

D'ailleurs pour les tables Feuilles (avec $ final) un simple:
If right(xlSheet.Name,1)="$" then Nom = Left(Right(xlSheet.Name),Len(xlSheet.Name)-1) suffirait.

Si j'avais mis des "Replace" c'est qu'il nomme parfois ces feuilles avec des points au milieu des noms. Ces points sont remplacer par des dièses( '#' )par le moteur ADO donc pour restituer le nom d'origine, il faut remplacer les dièses par des points et les $ par des "".

A+
 

Regueiro

XLDnaute Impliqué
Re : ADOX CATALOG lister noms feuilles sans $

Re
J'ai mis le code de HASCO dans mon fichier.
Mais il plante toujours sur ComboBox1_Change
Je n'arrive pas alimenter mon Listview1 d'après le choix dans ComboBox1.
J'ai vraiment besoin de votre aide.
MErci
 
G

Guest

Guest
Re : ADOX CATALOG lister noms feuilles sans $

Re,

C'est un code à mettre dans UserForm_Initialize ou à la rigueur dans Combobox1_Click, mais certainement pas dans Combobox1_Change qui est appelé sans arrêt à chaque fois que tu ajoute un item. L'appel répété à la connexion fait planter ton programme.

Code:
Private Sub ComboBox1_Click()
If ComboBox1.ListIndex > -1 Then
    'Lancer l'interrogation de la base et
    'le chargement des listview
End If
End Sub

A+
[Edit] Content de te croiser Chti
 
Dernière modification par un modérateur:

ChTi160

XLDnaute Barbatruc
Re : ADOX CATALOG lister noms feuilles sans $

Bonsoir Regueiro
Bonsoir le Fil
Bonsoir le Forum

je suis ce fil et je crois comprendre que tu veux récupérer des données dans un fichier Fermé cela a partir des noms de Feuilles récupérée dans ce même fichier fermé
mais il ne suffit pas d'avoir le nom de ses feuilles pour pouvoir aller chercher des données dans ce fichier fermé .
Il faut maintenant voir quelle est la méthode pour aller chercher des données dans un fichier fermé Lol
cette remarque ne tient que si j'ai bien compris
Bonne fin de soirée
Amicalement
Jean Marie
 

Regueiro

XLDnaute Impliqué
Re : ADOX CATALOG lister noms feuilles sans $

Bonsoir ChTi160
C'est exactement ça.
Mais je suis à l'arrêt.
Pourriez-vous me donner un coup de main.
Voilà en exemple un code de Boisgontier qui marche mais je n'arrive à le mettre en application
pour mon problème

Private Sub UserForm_Initialize()
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & ThisWorkbook.Path & "\" & "CP_PAYS.xls"
Set rs = cnn.Execute("SELECT code FROM BD WHERE code<>'' GROUP BY code")
Me.ComboBoxCP.List = Application.Transpose(rs.GetRows)
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub

Private Sub ComboBoxCP_Change()
Dim rs As ADODB.Recordset
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & ThisWorkbook.Path & "\" & "CP_PAYS.xls"
Set rs = cnn.Execute("SELECT Lieu FROM BD WHERE code='" & Me.ComboBoxCP & "'")
Me.ComboBoxLieu.List = Application.Transpose(rs.GetRows)
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
End Sub


MErci
 

Regueiro

XLDnaute Impliqué
Re : ADOX CATALOG lister noms feuilles sans $

Je crois que je vais y arriver.
Le problème viendrait de mon fichier BDD MSIT 2012.xlsm
En fait dans les 4 fichiers
SALAIRE = Plage nommée BD à transformée en BDSALAIRE
MATERIAUX = PLage nommée BD à transformée en BDMATERIAUX
INVENTAIRE = Plage nommée BD à transformée en BDINVENTAIRE
TIERS = Plage nommée à transformée en BDTIERS
ainsi lorsque le combobox1 s'ouvre il trouve que les noms des tables et ma les noms des onglets
ensuite je dois pouvoir les alimenter dans mon Listview1
j'essaie de mon côté et vous aussi :)
et on se revoie
Merci
A+
 

ChTi160

XLDnaute Barbatruc
Re : ADOX CATALOG lister noms feuilles sans $

Bonsoir Regueiro
Attention !!!!
tu parles de fichiers "En fait dans les quatre fichiers" ne veux tu dire "Feuilles"
car lors de mes essais , j'ai récupéré le nom des feuilles du classeur fermé (BDD MSIT 2012.xlsm) et c'est exactement ces Noms SALAIRE,MATÉRIAUX,INVENTAIRE,TIERS
veux tu récupérer les données de plages nommées de ces 4 feuilles ????
peux tu être plus précis (que veux tu récupérer ,sous quelle forme) etc etc
Merci
Bonne fin de Soirée
Amicalement
Jean Marie
 

Regueiro

XLDnaute Impliqué
Re : ADOX CATALOG lister noms feuilles sans $

Bonsoir ChTi160
Je peux t'envoyer mes 2 fichiers à jours, mais même compressé = 1900 ko
Comment je peux de les envoyées
Merci de prendre de ton temps pour mon problème.
A+
 

Regueiro

XLDnaute Impliqué
Re : ADOX CATALOG lister noms feuilles sans $

Bonsoir BrunoM45
ça fait plaisir de t'entendre
voila le fichier est sur Free - Envoyez vos documents
Je crois que tu vas le reconnaître.

Explications :
Dans le classeur Prog ...onglets ART.001 double click en E19
USF s'ouvre avec liaison ADO à BDD MSIT 2012.
Tu choisis dans le combo Salaire il alimente les 5 listview
Bouton valider = range dans la cellule active le contenu du listView 5
avec exemple : code 1.110.000.000.000 en E9
le suivant en F9 -> en F9 -> G9
MErci de votre Aide
A+
 

Regueiro

XLDnaute Impliqué
Re : ADOX CATALOG lister noms feuilles sans $

Bonsoir à tous
Encore des explications
En fait dans le fichier BDD MSIT 2012 il y a déja un USF2 vous pouvez l'ouvrir avec la macro "lanceUserform2"
Choisir une catégorie dans le ComboBox1 par exemple SALAIRE alors
ListeView1 (niveau 1) = 1 - SALAIRE click
ListeView2 (niveau 2) = 1.001. - TECHNIQUE - SECURITE
Jusqu'au niveau5 ensuite bouton valider
La il se plante parceque :

Lig = Workbooks("1 Programme MSIT - 2012 (V02).xlsm").Worksheets("DEVIS").iRow
With Workbooks("1 Programme MSIT - 2012 (V02).xlsm").Worksheets("DEVIS")

Ce que je souhaiterais c'est que depuis l'autre fichier "Prog Devis...xlsm)
Dans l'onglet ART.001 lorsque je double click en E19 USF1 de ce fichier s'ouvre comme sur l'autre exemple.
Ensuite les données du fichier viennent se placer dans la cellule activer, soit :
E9 = 1.100.001.000.000 "exemple"
F9 = Dessinateur
G9 = pc = un. = unité
H9 = 90 = prix unitaire
Voilà et ensuite lorsque que toutes mes données sont entrées sont faites dans plusieurs Onglets de type
ART.001 - ART.002 - ART.003
Ensuite dans l'onglet 0.Récap le code marche il me fait une synthèse de tous les onglets.
Je peux également choisir de faire une Récap sur certains onglets en sélectionnent le choix avec "x" en minuscule
la codemarche également.

Si vous avez du temps.
J'aimerais que sur la feuilles 0.Récap
il me triée les données par sous-totaux
Exemple :

1. - SALAIRE
2. - MATERIAUX
3. - INVENTAIRE
4. - TIERS

Voilà ce que je souhaiteraid faire de ce fichier.
Voir plus, mais là c'est pour demain.
Bonne soirée à tous.
Au plaisir de vous entendre
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 924
Membres
101 841
dernier inscrit
ferid87