Ouverture fichier Excel depuis Excel
T
Bonjour à tous,
J'ai une macro qui me sert à ouvrir un fichier excel contant des données, récupérer des informations et les copier sur mon classeur.
MAIS, lors de la recherche de mon fichier dans les méandres de mon poste, la boite de dialogue n'affiche que les fichiers excel enregistré en version 1997 - 2003. ... Seriez-vous d'où cela peut venir ?
Je travaille en excel 2013.
Merci d'avance
Tom
Voici le code d'ouverture du fichier :
Sub extractioncommande()
nom_fichier = ActiveWorkbook.Name 'récupère le nom du classeur = l'outil de plannification (initialement il s'agit du classeur actif)
' Paramètre la feuille d'extraction suivant quel bouton l'utilisateur à utilisé
If extraType = "AutoCad" Then
nom_feuille_source = "Commande"
ElseIf extraType = "CTM" Then
nom_feuille_source = "Demande de materiel"
End If
'(1) ouvre une boite de dialogue permettant d'aller chercher le fichier excel
nom_extra = Application.GetOpenFilename("Fichier Excel (*.xls), *.xls")
If Len(Replace(nom_extra, ".xls", "")) = Len(nom_extra) Then
MsgBox "Sélectionnez un fichier au format .xls"
Exit Sub
Else
Set classeur_source = Application.Workbooks.Open(nom_extra)
Set feuille_source = classeur_source.Worksheets(nom_feuille_source)
'Recherche des colonnes et lignes des entêtes
For i = 10 To 200
For j = 1 To 25
Select Case feuille_source.Cells(i, j).Value
Case Is = "Codes"
ind_col_c_DM = j 'Normalement cette colonne est = à A = 1
Case Is = "Désignations"
ind_col_d_DM = j 'Normalement cette colonne est = à C = 3
Case Is = "Quantités"
ind_lgn_q_DM = i 'Normalement cette ligne est à = 12
ind_col_q_DM = j 'Normalement cette colonne est = à M = 13
Case Is = "OBSERVATIONS :"
ind_lgn_ob_DM = i 'bas de la feuille
End Select
Next j
Next
nbLignes_DM = ind_lgn_ob_DM - ind_lgn_q_DM
ReDim matriceDM(nbLignes_DM, 2) As Variant 'matrice à 3 colonnes (codes, libélés et quantités)
k = 0
'Copie des code et quantité présent dans la feuille de demande de matériel
For i = ind_lgn_q_DM + 2 To ind_lgn_q_DM + nbLignes_DM - 2
If feuille_source.Cells(i, ind_col_q_DM).Value <> "" Then 'si il y a une quantité
matriceDM(k, 0) = feuille_source.Cells(i, ind_col_c_DM).Value 'code
matriceDM(k, 1) = feuille_source.Cells(i, ind_col_d_DM + 1).Value 'libélé
matriceDM(k, 2) = feuille_source.Cells(i, ind_col_q_DM).Value 'quantité
k = k + 1
End If
Next i
End If
FichierExtrait = True
Windows(nom_fichier).Activate 'active la feuille FGM
FGM.Activate
UserForm1.Label18.Caption = nom_extra
End Subbonjour,
une proposition de correction
nom_extra = Application.GetOpenFilename("Fichier Excel (*.xls*), *.xls*")
If InStr(nomextra, ".xls") = 0 Then
MsgBox "Sélectionnez un fichier au format .xls*"
Exit Sub
End IfT
Super au top !
Merci h2so4
Sujet résolu.
Si quelqu'un a une idée pour ça : --> https://forum.excel-pratique.com/post454975.html?hilit=mise%20en%20forme#p454975