Stocker dans un Dossier tous les Composants de ses Applis pour recherches ultérieures

YANN-56

XLDnaute Barbatruc
Bonjour à ceux qui passeront par là,

Voici le code de récupération dans une feuille d'un Classeur Fermé:
Code:
Private Sub CommandButton1_Click()
FICHIER = ThisWorkbook.Path & "\SOURCE.xls"
NOMFEUILLE = "CODE"
    
Set Cn = New ADODB.Connection
    
 With Cn
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .ConnectionString = "Data Source=" & FICHIER & ";Extended Properties=Excel 8.0;"
  .Open
 End With
    
texte_SQL = "SELECT * FROM [" & NOMFEUILLE & "$]"
    Set Rst = New ADODB.Recordset
    Set Rst = Cn.Execute(texte_SQL)
    Worksheets("RECUP").Range("A1").CopyFromRecordset Rst
    
Cn.Close
Set Cn = Nothing
End Sub
Je tente en vain, depuis un grand moment,
à transporter directement les données copiées dans le TextBox de l'USF, sans passer par la Feuille.
(Ce serait perdre une grande partie du temps gagné avec la méthode ADO)

L'arrière-pensée est de charger les "Tag" des Items d'une ListView de cette façon.
Je n'ai pas mis ce Control dans mon USF, car je sais qu'il pose soucis à certains.
Le Bouton 2 pourra servir de réceptacle pour les tests, car il en sera évidemment de même pour ses Items.

Merci, par avance, à qui saura m'aguiller........
Si ce n'est de me dire que ce que je cherche à faire est impossible!

Amicalement,

Yann
 

Pièces jointes

  • ASPIRATEUR.xls
    38.5 KB · Affichages: 122
  • SOURCE.xls
    20 KB · Affichages: 151
  • SOURCE.xls
    20 KB · Affichages: 156
  • SOURCE.xls
    20 KB · Affichages: 160
Dernière édition:

GeoTrouvePas

XLDnaute Impliqué
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Malheureusement je suis sous Office XP.
J'ai bien sûr effectué une recherche sur mon ami Google, j'ai effectué le traditionnel Regsvr32 qui s'est bien déroulé mais rien y fait.
Le pire, c'est que je n'ai aucune référence manquante dans l'éditeur Vba et que, sur un fichier vierge, je peux créer moi - même un listview.
 

YANN-56

XLDnaute Barbatruc
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

GéoTrouvePas, ne touche à rien!

Je ne t'ai pas demandé si ton OS était XP, mais ta version Excel.:eek:

En attendant; si tu es en 2003, tu ajoutes une ListView dans un coin quelconque d'un USF?
(Tu pourras la supprimer par la suite)

Et tu veilles à ce que la référence "Microsoft Windows Common Control (SP6) soit cochée.

Amicalement et à suivre,

Yann
 
Dernière édition:

GeoTrouvePas

XLDnaute Impliqué
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

GéoTrouvePas, ne touche à rien!
Et Yann lit trop vite ! ;)

Je t'ai bien donné ma version d'Excel.
Excel 2002, Word 2002 et consorts sont tous réunis dans la suite bureautique Office XP (et non pas Office 2002 comme la logique (non marketing) voudrait) !!! ;)

Merci pour ta astuce mais comme tu l'as dit, ça ne semble fonctionner que sous 2003.

Mais t'inquiète pas, je vais essayer de me débrouiller avec mon ami Google. Et puis je ne voudrais pas "polluer" ce post avec ce problème. Ça risquerait de faire passer certains XLDiens à côté de ton fabuleux outil.
 

YANN-56

XLDnaute Barbatruc
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

GeoTrouvePas; tu ne pollues rien,

Peut-être ici se trouvera une bonne âme à t'aider à résoudre ce problème.:confused:

Pour ma part, il ne faut pas me demander d'ouvrir le capot du moteur,
je ne pige rien aux caprices de Bill !!!

J'espère que tu pourras ouvrir ce Fichier par ailleurs,
et qu'il te sera offert une actualisation de ton P.C.

Au plaisir,

Yann
 

fhoest

XLDnaute Accro
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Bonjour à tous,
Yann BRAVO et merci pour le fichier j'ai encore en stock ton armoire qui s'ouvre avec le grincement,

C'est tout simplement génial, Petite remarque ,je sais que ce n'est pas fini mais il faudrait donner des titres aux userform
et je ne sais pas si tu va intégrer ou pas la recherche par tableau a toi de voir c'est ton merveilleux fichier,j'ai remarqué également que tu va étendre encore les fonctionnalité du fichier c'est géant.

@Geotrouve pas il faut tout simplement pour les listviews allez dans https://www.excel-downloads.com/threads/mscomctl-ocx-remerciement-aux-membres-du-forum.183051/
la meilleur façon c'est de supprimer les .exd normalement cela suffit c'est la méthode microsoft

@ tous pour ajouter automatiquement la librairie ce petit code (référence a coché dont Yann parle)
Code:
Private Sub Workbook_Open()
Dim Refs As Object, Ref As Object
On Error Resume Next
With ThisWorkbook
    Set Refs = .VBProject.References
    For Each Ref In Refs
        If Ref.IsBroken Then
            Refs.Remove Ref
        End If
    Next
    .VBProject.References.AddFromGuid _
       "{86CF1D34-0C5F-11D2-A9FC-0000F8754DA1}", 1, 0
End With
End Sub


Au plaisir.
Fred.
 
Dernière édition:

YANN-56

XLDnaute Barbatruc
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Bonjour Fred:), et à ceux qui passeront par ici,
(Je ne dis pas Bonsoir, car je pense qu'il sera déjà demain)

j'ai encore en stock ton armoire qui s'ouvre avec le grincement,
Je n'ai pas mis ce coté ludique pour deux raisons:
- 1) Ne pas encombrer las codes.
- 2) Cela finit pas devenir agaçant au bout d'un moment.

il faudrait donner des titres aux userform
Je ne l'ai pas fait car dans la version finale, la bande bleue des USF ne sera plus visible.
En l'occurrence, c'est déjà fait, ainsi que l'adaptation pour SEVEN 32 ou 64 bits
(Normalement, car je n'ai pas les outils pour tester..... On verra plus tard)

et je ne sais pas si tu va intégrer ou pas la recherche par tableau
Je reviendrai certainement sur ce point. Et il y a aussi la solution de Bruno à regarder.

j'ai remarqué également que tu va étendre encore les fonctionnalité du fichier
La plupart de celles-ci sont dans mes tablettes, mais il faut que je fasse un peu de ménage avant.

Merci sincère pour tes encouragements et ton aide.
(A noter que celle donnée à GeoTrouvePas est balaise!)

Amicalement, pépé qui va dormir,

Yann
 
C

Compte Supprimé 979

Guest
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Salut Yann

Tu as failli faire nocturne cette nuit :eek:

Je ne l'ai pas fait car dans la version finale, la bande bleue des USF ne sera plus visible.
En l'occurrence, c'est déjà fait, ainsi que l'adaptation pour SEVEN 32 ou 64 bits
(Normalement, car je n'ai pas les outils pour tester..... On verra plus tard)

J'ai Seven 64bits chez moi, pour tester il n'y aura pas de problème ;)

A+
 

GeoTrouvePas

XLDnaute Impliqué
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Bonjour tout le monde,

@fhoest :
Je me souvenais de ton précieux post où tu avais compilé les différentes réponses données sur ce sujet. J'ai tout mis en oeuvre mais rien n'y fait. C'est d'autant plus bizarre que je peux ajouter un listview sur un nouveau classeur mais je ne peux pas ouvrir un classeur "extérieur" contenant un listview....
J'ai pourtant essayé à de multiples reprises de refaire un RegSvr32 sur certaines DLL et OCX, j'ai même supprimé ces fichiers, récupéré une ancienne version, réengistré etc... Rien n'y fait....

@Yann : Heureusement ton fichier fonctionne parfaitement chez moi. Après un rapide test hier soir, mes premières impressions se sont confirmées : ton application est FORMIDABLE ! Il n'y a qu'une chose qui me gène : je n'aurai désormais plus d'excuse de ne pas avoir mis de côté un code utile ;););)

Concernant le cadre des userform, j'ai déjà eu l'occasion de tester de nombreuses solutions. Je te ferai passer d'ici la fin de la semaine la solution que j'avais retenu et qui fonctionne sous XP et Seven 64 (pas eu l'occasion de tester sur d'autres plateformes).
 

GeoTrouvePas

XLDnaute Impliqué
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Re,

Je viens de me rendre compte que j'avais sous la main le code permettant de supprimer le cadre des userforms (petite démo en pièce jointe) :

Déclarations à placer dans un module :
Code:
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal NIndex As Long) As Long
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal NIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As Long
Procédure à placer dans la procédure d'initialisation de chaque userform dont tu veux masquer le cadre :
Code:
Private Sub UserForm_Initialize()
    Dim Style As Variant
    hwnd = FindWindow(vbNullString, Me.Caption)
    On Error Resume Next
    Style = GetWindowLong(hwnd, -16) And Not &HC00000
    SetWindowLong hwnd, -16, Style
    DrawMenuBar hwnd
End Sub

Je ne saurai pas citer la source (je sais c'est pas bien) mais c'est la solution la plus stable que j'ai trouvée.
A noter que certaines solutions proposées sur le net fonctionnaient , ou pas, en fonction du thème de bureau de l'utilisateur (thème Windows XP ou Windows Classique). Celle proposée ci - dessus fonctionne avec n'importe quelle thème sous Windows XP et même Windows Seven 64.
 

Pièces jointes

  • Userform sans cadre.xls
    27.5 KB · Affichages: 35
  • Userform sans cadre.xls
    27.5 KB · Affichages: 35
  • Userform sans cadre.xls
    27.5 KB · Affichages: 40
C

Compte Supprimé 979

Guest
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Salut GeoTrouvePas

Je me souvenais de ton précieux post où tu avais compilé les différentes réponses données sur ce sujet. J'ai tout mis en oeuvre mais rien n'y fait. C'est d'autant plus bizarre que je peux ajouter un listview sur un nouveau classeur mais je ne peux pas ouvrir un classeur "extérieur" contenant un listview....
J'ai pourtant essayé à de multiples reprises de refaire un RegSvr32 sur certaines DLL et OCX, j'ai même supprimé ces fichiers, récupéré une ancienne version, réengistré etc... Rien n'y fait....
Ce qui peut y faire ... c'est de carrément supprimer le contrôle et de le recréer

A+
 

GeoTrouvePas

XLDnaute Impliqué
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Ce qui peut y faire ... c'est de carrément supprimer le contrôle et de le recréer

Déjà fait !
J'ai ":
- désenregistré" MSCOMCT2.OCX, MSCOMCTL.OCX et FM20.dll
- supprimé ces fichiers
- redémarré mon poste de travail
- recopié ces fichiers dans system32
- repassé un coup de regsvr32
- redémarré à nouveau mon poste de travail

et...... ben ça marche toujours pas ^^
 

fhoest

XLDnaute Accro
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Bonjour tout le monde,

@fhoest :
Je me souvenais de ton précieux post où tu avais compilé les différentes réponses données sur ce sujet. J'ai tout mis en oeuvre mais rien n'y fait. C'est d'autant plus bizarre que je peux ajouter un listview sur un nouveau classeur mais je ne peux pas ouvrir un classeur "extérieur" contenant un listview....
J'ai pourtant essayé à de multiples reprises de refaire un RegSvr32 sur certaines DLL et OCX, j'ai même supprimé ces fichiers, récupéré une ancienne version, réengistré etc... Rien n'y fait....

Lors de l'ouverture d'un fichier qui possède le control
on fait appel a la lib mslib... dans l'evenement click ou autre parfois du code entre parenthèse
copie le code de l'évènement
supprime le sub
recrée un nouvel évènement et colle le code copier
si tu n'arrive pas a rentré dans le code
Appuie sur CTRL + Pause
tu va pouvoir aller dans le code
Normalement après c'est ok

A+
 
C

Compte Supprimé 979

Guest
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Désolé,

Je m'aperçois que je n'ai pas encore été assez explicite :eek:

Dans ton USF, tu supprimes le controle ListView et tu insères de nouveau le controle

A+
 

GeoTrouvePas

XLDnaute Impliqué
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Merci fhoest mais je ne peux même pas mettre ta proposition en application.

Le problème intervient dès l'ouverture du fichier.
Après le double - clic, Excel me propose d'activer ou pas les macros.
Que j'accepte ou que je refuse l'activation, j'ai immédiatement le message d'erreur "Impossible de charger le objet car il n'est pas disponible sur cette machine".
L'ensemble des listviews contenus dans le fichier sont alors supprimés et le fichier est sauvegardé. Du coup à chaque nouveau test je suis obligé de retélécharger le fichier d'origine.
 

GeoTrouvePas

XLDnaute Impliqué
Re : Copie Données dans une Feuille via "A.D.O" = Ok, mais dans un TextBox = Echec!

Désolé Bruno je n'avais pas vu ton message.

Effectivement en supprimant/recréant le listview ça fonctionne. L'embêtant c'est que je trimballe beaucoup de fichiers entre mon boulot et mon domicile.

A chaque fois que je bosse sur un fichier chez moi le soir et que j'enregistre des modifications, en revenant au boulot le lendemain, je dois recréer tous les listview......
 

Discussions similaires

Statistiques des forums

Discussions
312 163
Messages
2 085 863
Membres
103 007
dernier inscrit
salma_hayek