ben tu lance ftp.exe , ensuite tu tape ligne à ligne les commandes contenues dans ton script excepté la première ligne (prompt) et arrivé au moment du put du utilise la commande "dir" pour afficher les fichiers présent sur ton serveur..
ben tu lance ftp.exe , ensuite tu tape ligne à ligne les commandes contenues dans ton script excepté la première ligne (prompt) et arrivé au moment du put du utilise la commande "dir" pour afficher les fichiers présent sur ton serveur..
Je vais craquer...
D’abord le "dir" me donne une liste de fichier dans mon serveur (incompléte), je ne sais pourquoi, bref
j'ai tout bien nettoyé des fichiers qui trainaient sur mon serveur, et j'ai fait la manip manuellement par le cmd et j'ai réussi à pousser un fichier au bon endroit dans le serveur, mais lorsque je le fait par la macro du fichier excel, il deroule bien la procédure, ( il ne me donne pas d'erreur) mais le fichier n' est pas présent dans le serveur
S'il vous plait, quelqu'un saurait-il me modifier ça pour que ça fonctionne en 64 bits?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Option Explicit Public Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As Long Public Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long ' Enumération des dossiers spéciaux Public Enum SpecialFoldersConstants CSIDL_INTERNET_CACHE = &H20 End Enum ' Type Private Type SHITEMID cb As Long abID As Byte End Type Private Type ITEMIDLIST mkid As SHITEMID End Type ' Constantes Public Const MAX_PATH = 260 Public Function GetSpecialFolder(SpecialFolder As SpecialFoldersConstants) As String ' Les variables Dim RC As Long Dim IDL As ITEMIDLIST Dim sPath As String ' Récupère le dossier spécial RC = SHGetSpecialFolderLocation(100, SpecialFolder, IDL) If RC = 0 Then ' Crée un tampon sPath = Space$(MAX_PATH) ' Récupère le path à partir de l'IDList SHGetPathFromIDList ByVal IDL.mkid.cb, ByVal sPath ' Supprime les chr$(0) inutiles sPath = Left$(sPath, InStr(sPath, Chr$(0)) - 1) 'If Right$(sPath, 1) <> "\" Then sPath = sPath & "\" Else sPath = "" End If GetSpecialFolder = sPath End Function
Bonjour,
tu devrais trouver ton bonheur ici : https://msdn.microsoft.com/fr-fr/lib...ffice.14).aspx
Salut,
effectivement je pense que la solution se trouve là, mais vu mon statut de débutant, cela me parait très compliqué malheureusement, je ne pense pas y arriver.
Merci pour ton info, mais je pense que je vais abandonner
Bonjour,
ajouter PtrSafe après Declare
Mais est-ce bien ta version d'Office qui est en 64 bits (auquel cas il faut alors modifier la déclaration des API) ou seulement la version de ton système d'exploitation (dans ce cas cette modification ne sera d'aucune utilité et le lancement de ta procédure provoquera un plantage) ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Public Declare PtrSafe Function SHGetSpecialFolderLocation Lib "shell32.dll" (ByVal hwndOwner As Long, ByVal nFolder As Long, pidl As ITEMIDLIST) As LongPublic Declare PtrSafe Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, ByVal lpBuffer As String) As Long
Concernant ce que tu veux faire (ou du moins ce que j'en comprends), à savoir enregistrer un fichier placé sur ton ordinateur sur un serveur, l'utilisation des API qui vont bien te le permet (cf. le lien proposé dans le message de kiki29).
A+
Salut,
Déja lorsque je rajoutte "PtrSafe" dans excel, il n'accepte pas, il attend plutot "function" alors qu'il est écrit???
Ensuite, je ne suis pa au boulot avant lundi, donc pas sur le pc concerné
Merci de te pencher sur le problème
D'où mon questionnement sur le fait de savoir si ta version d'Office est bien en 64 bits.Déja lorsque je rajoutte "PtrSafe" dans excel, il n'accepte pas, il attend plutot "function" alors qu'il est écrit???
Quel message d'erreur obtiens-tu lorsque tu places le PtrSafe ?
A+
Bonjour,
Alors, la version d'office serait bien en 32
J'ai bien essayé d'adapter mon script, mais ce n'est pas du tout concluant
Quelqu'un pourrait me guider?
Merci
Bonjour,
regarde ça:http://www.developpez.net/forums/d14...l/#post7886239
si tu préfères,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 strPassword = "123456789" strUserName = "Testr" ftpServer = "o ****.**.**.***.fr" Script =environ("TEMP") & "\script.ftp" Open Script For Output As #1 Print #1, "user" Print #1, strUserName Print #1, strPassword Print #1, "cd FDM/FDMRIP" Print #1, "put " & fdmca Print #1, "Quit" Close #1 Shell "ftp -n -s:" & Chr(34) & Script & Chr(34) & Space(1) & ftpServer
Dernière modification par AlainTech ; 23/05/2015 à 22h14. Motif: Fusion de 2 messages
je comprends pas la question!
pour que ça fonctionne il faut bien exécuter le shell ?????
tu peux coller la fonction dans n'importe quel module, ces même ce que je faits dans le lien que je t'es donné (la macro ce trouvait dans Outlook à l'origine et exécute dans Excel!), j'utilise un module de classe mais c'est autre chose!
RAHHH le fichier script.ftp se crée bien dans le TEMP ( accompagné du fichier .xls à pousser), et avec les bonnes infos, mais ça ne pousse pas dans le ftp
??
il faut te créer un fichier bat et regarder les erreurs dans la fenêtre dos!
Code Fichier.bat : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ftp -n -s: "C:\Temp\script.ftp" o ****.**.**.***.f pause
OK, je le met ou ce .bat?
et question: à quoi correspond strPath = "c:\DezipFtp\"
un fichier bat c'est un fichier texte avec l’extension Bat, il s'exécute en double clickant dessus comme un ficher .EXE. tu utilise Notepad++ pour le créer et tu le place ou tu veux sur le bureau par exemple.
c'est le répertoire de sauvegarde de mon exemple cela n'est pas important!
ton script avec Open Script For Output As #1. est largement suffisant.
Dernière modification par AlainTech ; 23/05/2015 à 22h16.
Oulhaa!!! lorsque j'active ton .bat, ça ne s’arrête pas de défiler!!!
le fichier bat ne doit contenir que ça!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2ftp -n -s: "C:\Temp\script.ftp" o ****.**.**.***.f pause
o ****.**.**.***.f ou o ****.**.**.***.fr
dans tous les cas ton serveur ftp
Lorsque je l'active j'ai la ligne
qui n’arrête pas de défiler dans la fenêtre DOS
Code : Sélectionner tout - Visualiser dans une fenêtre à part <C:\Users\xxxx\Desktop>ftp -n -s: "C:\Temp\script.ftp" o xxxx.xxxx.xxxx.xxxx.fr
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager