Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
748
Réponses
2
Affichages
657
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…