Autres Copier des données d’un fichier sans l’ouvrir juste en le sélectionnant via un UserForm

Liner77

XLDnaute Nouveau
Bonjour,
Je vous sollicite car je n'arrive pas à comprend pourquoi le passage sur sharepoint des fichiers ne permet plus à la macro de fonctionner.
Je m'explique :
Sur ma feuille macro je vais chercher des données d'un fichier sur l'explorateur grâce à UserForm :
J'arrive bien sur l'explorateur en revanche je bloque lorsque je décide de rapatrier mes données.
Pour info, en passant par le C\temp la macro fonctionne sans problème.
la macro bloque à "Open NomF For Input As #iFile" ci-dessous
Avez-vous une idée pourquoi le fait que les fichiers soient sur un sharepoint ça bloque le traitement ?
Merci par avance de votre aide

------------
Private Sub UsFMenu_Click()
RechercheFichier.Show
End Sub
------------
Private Sub CommandButton2_Click()
Dim NomF As Variant
NomF = chargerFichier("*.txt")
If NomF <> "" Then
Me.TBNouv.Text = NomF
End If

End Sub
--------------
Private Sub CommandButton4_Click()
Unload RechercheFichier
End Sub
------------

Private Function chargerFichier(TypeF As String)
' Ouvre un boite de dialogue de sélection de fichier permettant de sélectionner
' un fichier de type TypeF
' Déclaration des variables
Dim NomF As String
Dim fdlg As FileDialog
Dim vrtSelectedItem As Variant ' les noms de fichiers
Dim I As Long, ar
Dim iFile As Integer
Dim data
Dim ws As Worksheet
Dim sNomFichier As String

'Dim strItem As String ' le nom du fichier
NomF = ""
' Initialisation de la variable de l'objet FileDialog
Set fdlg = Application.FileDialog(msoFileDialogFilePicker)

' Spécifie les valeurs pour les principales propriétés
With fdlg
.Title = "Sélectionnez le fichier... " ' le titre de la boîte de dialogue
.Filters.Clear ' efface tous les filtres par défaut
'.Filters.Add "Fichier csv(.csv)", TypeF ' crée le filtre pour les fichiers texte
.InitialFileName = ActiveWorkbook.Path ' détermine le dossier par défaut
.AllowMultiSelect = False ' Autorise la sélection multiple

' L'utilisateur a cliqué sur le bouton
If .Show = -1 Then
' Parcour des différentes sélections
For Each vrtSelectedItem In .SelectedItems
NomF = vrtSelectedItem
Next vrtSelectedItem

' Si l'utilisateur clique sur Annuler...
Else
' vous pouvez faire un traitement particulier (facultatif)
End If
End With
Set fdlg = Nothing ' libère la mémoire
chargerFichier = NomF

Set ws = Sheets("Lecture") '// feuille où écrire les résultats
ws.UsedRange.Clear '// vider le contenu de la feuille
I = 1
iFile = FreeFile

'Ouvrir le fichier
Open NomF For Input As #iFile

'Lecture du fichier et écriture dans Excel

Do Until EOF(iFile)
Line Input #iFile, data
ws.Cells(I, 1) = data
I = I + 1
Loop

Close #iFile '// Fermer le fichier

End Function
-----------
 

Liner77

XLDnaute Nouveau
Bonjour Fanch55,
Le NomF est aléatoire car je vais le chercher avec userForm : je recherche le fichier sur explorateur Windows par ce moyen. Je ne sais pas si cette information peut vous être utile pour rechercher le blocage de cette ano. Est-il possible que le par feu bloque la macro ?
 

fanch55

XLDnaute Barbatruc
Le plus simple comme le fichier est en lecture seule, c'est de le télécharger dans un premier temps via par exemple :


puis de prendre le fichier téléchargé en open for input

Il doit exister un autre moyen, mais je n'ai pas de sharepoint pour le vérifier
 

Discussions similaires

  • Question
Microsoft 365 Code VBA
Réponses
10
Affichages
736
Réponses
2
Affichages
641

Statistiques des forums

Discussions
314 962
Messages
2 114 786
Membres
112 246
dernier inscrit
bbfaya