Microsoft 365 Comment afficher des infos d'un fichier ouvert avec "GetOpenFileName"

Kris1969

XLDnaute Nouveau
Bonjour la communauté,
Je suis occcupé à développer une petite appli avec utilisation d'UserForm pour le travail. Pour l'instant cela tourne (avec quelques Bugs mais qui sont en correction).
Ma question est la suivante :
Via la fonction GetOpenFileName, je parviens à sélectionner et télécharger des DB que je peux ensuite exploiter à ma convenance dans mon programme Excel.
Je dois pouvoir afficher certaines infos qui sont importantes pour l'utilisation de ces données.
Celle-ci sont : La date de création du fichier Téléchargés, le nombre de ligne et le nom du fichier ( j'aimerais utiliser les label )

Pour la date, j'ai essayé :

Dim MyStamp as date
MyStamp = FileDateTime("MonClasseur")

Pour le nombre de ligne, je suis parti sur :
Me.ComboBox1.Clear
With Sheets("DATA")
' Determine le nombre de cellules remplies
Nbligne = .Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
For j = 2 To Nbligne 'Boucle sur les lignes
ComboBox1.AddItem .Cells(j, 3).Value
Next j
End With
End Sub

Cela ne fonctionne pas :-(
Aucune solution trouvée également pour afficher dans un label le nom du dossier Téléchargé
Ci joint une partie du code utilisé pour ouvrir et traiter la DB a exploiter ( cette partie fonctionne ).
Savez-vous non pas le faire pour moi, mais m'aider et corriger mes erreurs svp

1676195825498.png
Merci d'avance
 

Kris1969

XLDnaute Nouveau
Bonjour
crois tu sincèrement qu'un membre va se taper la construction d'un fichier avec userform et controlss + tableau + code qui va avec pour te donner la solution

relire la charte article "Demandeur" paragraphe 2.5
merci pour ta compréhension ;)
SUPER votre réponse !!

Primo , On ne se connais pas
Deuxio, le respect des autres cela vous parle ?
Tertio, Vous pouvez répondre de façon plus plaisante, et ne pas agresser les gens !
Pour terminer :
Dis-moi ou je demande dans mon message qu'un membre doive se "taper" la reconstruction du code, userForms et controls qui va avec pour ME donner une solution ?
Ma demande est bien :

Savez-vous non pas le faire pour moi, mais m'aider et corriger mes erreurs svp

Nul besoin de commentaires malsains et déplacé, juste de l'aide
Pour info la charte je l'aie lue !
Si je n'ai pas mis le code complet c'est aussi peux être pour une raison ?
Y avez-vous réfléchi avant votre détestable réponse ...

Un bon Dimanche quand même
Bien à vous
 

patricktoulon

XLDnaute Barbatruc
re

Pour info la charte je l'aie lue !
Si je n'ai pas mis le code complet c'est aussi peux être pour une raison ?
ben la relire alors
je n'ai pas parlé de code mais un fichier représentatif de votre problème anonymisé)aussi minimal soit il


Dis-moi ou je demande dans mon message qu'un membre doive se "taper" la reconstruction du code,
en ne le faisant pas


Deuxio, le respect des autres cela vous parle ?
oui et ça commence par le respect des règles quand on entre dans une communauté


Y avez-vous réfléchi avant votre détestable réponse ...
je n'ai pas à y réfléchir (même réponse que pour la 2°)

Bon dimanche également 😁
 

Kris1969

XLDnaute Nouveau
re


ben la relire alors
je n'ai pas parlé de code mais un fichier représentatif de votre problème anonymisé)aussi minimal soit il



en ne le faisant pas



oui et ça commence par le respect des règles quand on entre dans une communauté



je n'ai pas à y réfléchir (même réponse que pour la 2°)

Bon dimanche également 😁
Je vois, je ne vais certainement pas polémiquer avec vous c'est peine perdue.
Il m'est impossible actuellement au vu de mes connaissances limitées de pouvoir vous refaire un fichier Exemple au vu des données sensible et des différents userform que j'ai créé, J'essaie de le faire toutefois. Sachez que tous n'avons pas chers monsieur votre aisance en Vba.
Le point 2.5 n'oblige pas l'envoi de fichier mais le conseille vivement
Par contre allez revoir les points 3.1 , 3.2 et 3.3 Cette partie vous a certainement échappé.

Au plaisir
 

patricktoulon

XLDnaute Barbatruc
juste pour info
car je pars du principe que toute date dans une feuille excel doit rester calculable
ta variable est très bien en date
il faut savoir qu'une date dans excel est avant tout un numérique
comment partir de datefiletime XX/XX/XXX HH:MM:SS vers une date XX/XX/XXXX
datefiletime renvoie un string (vba le considère comme du texte c'est ballo!)

donc il faut convertir
quelques explications ci dessous
VB:
Sub test()

    Dim Mystamp As Date    ' la variable est un date

    Dim CheminDeMonClasseurComplet As String    'le chemein complet est du texte (string)

    CheminDeMonClasseurComplet = ThisWorkbook.FullName    'recuperation du chemin complet du classeur

'comme je l'ai dis une date est un numerique  (en vba avec cdate)
'on arrondi donc la date
'comme la variable mystamp est une date  le resultat sera l'arrondi du numerique de la date (EN FORMAT DATE!!!!)

    Mystamp = Round(CDate(FileDateTime(CheminDeMonClasseurComplet)))    'obtention de la date sans les (heures:minutes;secondes)

    MsgBox Mystamp

End Sub

'exemple de conversion num--> date
Sub test2()
    MsgBox CDate(44969)
End Sub
 

Kris1969

XLDnaute Nouveau
juste pour info
car je pars du principe que toute date dans une feuille excel doit rester calculable
ta variable est très bien en date
il faut savoir qu'une date dans excel est avant tout un numérique
comment partir de datefiletime XX/XX/XXX HH:MM:SS vers une date XX/XX/XXXX
datefiletime renvoie un string (vba le considère comme du texte c'est ballo!)

donc il faut convertir
quelques explications ci dessous
VB:
Sub test()

    Dim Mystamp As Date    ' la variable est un date

    Dim CheminDeMonClasseurComplet As String    'le chemein complet est du texte (string)

    CheminDeMonClasseurComplet = ThisWorkbook.FullName    'recuperation du chemin complet du classeur

'comme je l'ai dis une date est un numerique  (en vba avec cdate)
'on arrondi donc la date
'comme la variable mystamp est une date  le resultat sera l'arrondi du numerique de la date (EN FORMAT DATE!!!!)

    Mystamp = Round(CDate(FileDateTime(CheminDeMonClasseurComplet)))    'obtention de la date sans les (heures:minutes;secondes)

    MsgBox Mystamp

End Sub

'exemple de conversion num--> date
Sub test2()
    MsgBox CDate(44969)
End Sub
Merci Patrick cela m'aide
Pour ton info j'ai posté les deux fichiers simplifiés et les problèmes rencontrés.
Désolé aussi pour mes réponses, je n'aurais pas dû être aussi vindicatif envers toi. Mes excuses Dès lors et
Restons dans la bienveillance

Un bon Dimanche
 

fanch55

XLDnaute Barbatruc
Bonjour,
Au vu de l'image fournie, la date ne semble utile que si un nom de fichier a été fourni ..
Aussi, j'aurai plutôt mis le filedatetime après le Close du Classeur :
If ListeFichier <> False then
.....​
MonClasseur.Close​
MyStamp = FileDateTime(ListeFichier) ou MyStamp =FileDateTime(MonClasseur.FullName)
End If

Nota: FileDateTime("MonClasseur") ==> on cherche un fichier qui s'appelle "MonClasseur" ..... 😚

Edit: MyStamp =FileDateTime(MonClasseur.FullName) doit être mis avant le close ....
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 088
Messages
2 116 089
Membres
112 657
dernier inscrit
jpb3