selectionner le fichier excel pour BD

camadian

XLDnaute Junior
bonjour le forum

Existe il un moyen pour que dans ma macro je puisse choisir et sélectionner un fichier excel qui me servira de référence pour pour alimenter ma listview car mon fichier ne porte pas toujours le meme nom mais sa structure est toujours identique

En vous remerciant
Camadian

Private Sub UserForm_Initialize()
Dim m As Byte, i As Long, x As Long, k As Byte
Dim Wb As Object, chemin$
Dim lig As Long
ListBox1.Clear
chemin = ThisWorkbook.Path & "\1111-1111.xls"
 

Pièces jointes

  • bef.zip
    166.2 KB · Affichages: 54
  • bef.zip
    166.2 KB · Affichages: 59
  • bef.zip
    166.2 KB · Affichages: 61

Efgé

XLDnaute Barbatruc
Re : selectionner le fichier excel pour BD

Bonjour camadian,
Une proposition dans l'exemple. Dis moi si ça va, je l'enlèverai après (le poid est trop important...)
Cordialement

EDIT A la lecture de la réponse de camadian, j'enlève le fichier et mets le "truc simple et efficace"
VB:
Public Chemin$
Sub Explorateur_fichier()
'Crée une boite de dialogue de sélection de fichiers :
 With Application.FileDialog(msoFileDialogFilePicker)
    .Show
    If .SelectedItems.Count > 0 Then
        Chemin$ = .SelectedItems(1)
    End If
End With
End Sub
Cordialement
 
Dernière édition:

camadian

XLDnaute Junior
Re : selectionner le fichier excel pour BD

Bonjour, Efgé
Ta solus est simple et efficace

j'avais trouvé ceci qui fonctionne bien également mais c'est vrai que le tps de chargement est long !!!!
Camadian



Private Sub UserForm_Initialize()
Dim m As Byte, i As Long, x As Long, k As Byte
Dim Wb As Object ', chemin$
Dim lig As Long
Dim DialOuvr As FileDialog, Rep, Chemin1 As String
Set DialOuvr = Application.FileDialog(msoFileDialogOpen)
DialOuvr.Filters.Clear
DialOuvr.Filters.Add "Fichiers XLS", "*.xls", 1
DialOuvr.AllowMultiSelect = False
DialOuvr.Title = "Ouverture du fichier xls"
DialOuvr.InitialView = msoFileDialogViewList

Rep = DialOuvr.Show
If Rep = 0 Then
MsgBox "Opération annulée"
Exit Sub
End If
Chemin1 = DialOuvr.SelectedItems(1)
....
End sub
 

PlugNplay

XLDnaute Nouveau
Re : selectionner le fichier excel pour BD

Bonjour,

Je pense qu'avec ça tu devrais t'en sortir :
Code:
Private Sub UserForm_Initialize()
    Dim m As Byte, i As Long, x As Long, k As Byte
    Dim Wb As Object, chemin$
    Dim lig As Long

    ListBox1.Clear

    chemin = Application.GetOpenFilename()

Ce code ouvre une fenêtre pour choisir un fichier. Tu sélectionnes celui que tu veux, puis la fonction te retourne le nom complet du fichier que tu as sélectionné (sans l'ouvrir), c'est-à-dire son chemin complet (ex : C:\...\1111-1111.xls).
Le seul inconvénient c'est que l'adresse contient aussi le nom du fichier, je ne sais pas si dans ton cas c'est gênant ?

Bonne chance
 

Efgé

XLDnaute Barbatruc
Re : selectionner le fichier excel pour BD

Bonjour à tous,
Pour le problème du temps d'ouverture de l'USF, on peux essayé ça :
VB:
Private Sub UserForm_Initialize()
Dim Plg(), Col&, lig&
ListBox1.Clear
With ListView1
    With .ColumnHeaders
       .Clear
       .Add , , "Numéro", 40
       .Add , , "Indice", 40
       .Add , , "Quantité", 40
       .Add , , "désignation", 150
       .Add , , "Matiere", 40
       .Add , , "Protection", 40
       .Add , , "Observations", 100
    End With
    .View = lvwReport
    .FullRowSelect = True
    .Gridlines = True
'Chargement des données (modifs)
    Workbooks.Open Filename:=Chemin
    Plg = ActiveWorkbook.ActiveSheet.UsedRange.Value
    ActiveWorkbook.Close False
    For lig = LBound(Plg, 1) To UBound(Plg, 1)
        .ListItems.Add , , Plg(lig, 1)
        With .ListItems(ListView1.ListItems.Count).ListSubItems
            For Col = 2 To 7
                .Add , , Plg(lig, Col)
            Next Col
        End With
    Next lig
'Chargement des données (modifs)
End With
Label10.Caption = "Nous somme le : " & Format(Now(), "dd mmmm yyyy") & ", il est " & Format(Now(), "hh : mm") & " heure"
With ListBox1
    .ColumnCount = 7
    .ColumnHeads = True
    .RowSource = Range("A2:G" & Range("A65536").End(xlUp).Row).Address
End With
End Sub
Cordialement
 

camadian

XLDnaute Junior
Re : selectionner le fichier excel pour BD

Re
Je sais mais je pense que le fait de récupérer des données externe bloque la listbox ainsi que les entêtes de colonne Je vais voir si en passant par une listview cela fonctionnera beaucoup mieux
mais je te remercie pour ton aide qui me fut bien précieuse.
je joint le fichier
Camadian
 

Pièces jointes

  • bef.zip
    155.9 KB · Affichages: 45
  • bef.zip
    155.9 KB · Affichages: 45
  • bef.zip
    155.9 KB · Affichages: 45

Efgé

XLDnaute Barbatruc
Re : selectionner le fichier excel pour BD

Re
Essai, si j'ai bien compris :
A mettre juste avant (ou après c'est plus logique) la ligne Label10.Caption = ....
VB:
Sheets("Feuil1").Cells(1, 1).Resize(UBound(Plg, 1), UBound(Plg, 2)) = Plg
Cordialement

EDIT Retire ton dernier fichier, il est trop lourd pour le forum et n'ammene pas grand chose au schmilblic.
 
Dernière édition:

Efgé

XLDnaute Barbatruc
Re : selectionner le fichier excel pour BD

Re
Pour tout dire, je ne comprend pas la finalité de cet USF.
Avec quelques explications sur son maniement je comprendrai peut être le problème.
La ListBox se mettait elle à jour avec le premier fichier?
La ListBox doit-elle se remplir avec les mêmes données que la ListView ?
Si ListBox et ListView sont identiques pourquoi en faire deux?
Etc....
En attendant de te re-lire.
Cordialement
 

camadian

XLDnaute Junior
Re : selectionner le fichier excel pour BD

Avec le logiciel Catia (logiciel de CAO) je génère un fichier Excel (nomenclature) ref, quantité indice désignation ..... cette nomenclature est propre au dessin d'ensemble
mais au moment du lancement en fabrication nous devons fournir au fabriquant un document issu de cette nomenclature avec les pièces qu'il doit nous fournir (quantités ou pièces peuvent différées de la nomenclature) pour exemple j'ai 2 boulons dans mon ensemble, il est préférable de commander 50 boulons (pour pièces de rechange ou pour coût)
et ce sans toucher a mon fichier d'origine car celui ci est lié au dessin
j'espere avoir ete assez clair sur mes explications.
cordialement
Camadian
 

Efgé

XLDnaute Barbatruc
Re : selectionner le fichier excel pour BD

Re
J'aurais bien aimé que tu me donne au moins les renseignements demandés:
La ListBox se mettait elle à jour avec le premier fichier?
La ListBox doit-elle se remplir avec les mêmes données que la ListView ?
Si ListBox et ListView sont identiques pourquoi en faire deux?
Etc....
Cordialement
 

camadian

XLDnaute Junior
Re : selectionner le fichier excel pour BD

Toutes mes excuses
La listview se met a jour avec le fichier externe
une fois mes données dans ma listview je sélectionne la ou les lignes en les modifiant ou non quantité et/ou observations
je les mets dans ma listbox
une fois ma listbox renseigné j' imprime un document avec les données de ma listbox
donc
ma listbox ne se met pas a jour avec le premier fichier
la listbox ne se rempli pas avec les mêmes données que la listview
la listbox est la listwiew seront différentes

C'est vrai que c'est un peu confus mais mon responsable me demande d'automatiser tout ca afin d'éviter toutes erreur.
cordialement
Camadian
 

Discussions similaires

Statistiques des forums

Discussions
312 755
Messages
2 091 700
Membres
105 051
dernier inscrit
gaethano