IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

problème fso move chaîne de caractères trop longue [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut problème fso move chaîne de caractères trop longue
    Bonjour le forum,

    J'essaie d'auitomatiser le déplacement de fichiers depuis un dossier source vers un dossier archive.

    Pour ce faire.
    1 - Je crée le répertore d'archives par la méthode fso édictée par Sylkiroad dans la FAQ créer un dossier
    2 - J'utilise la méthode fso

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub DeplaceFichier(source As String, destin As String)
     
    Dim objOFS As Variant
     
    Set objOFS = CreateObject("Scripting.FileSystemObject")
     
    If (objOFS.FileExists(source)) Then
            objOFS.MoveFile source, destin
    End If
     
    Set objOFS = Nothing
     
    Exit Sub
    Ici, l'argument source désigne le chemin complet du fichier à déplacer (Dossier + Nom + extension), l'argument destin celui du fichier cible.

    Il se trouve que si la longueur de destin est supérieure à la limite - classique - de 255 caractères, alors le code retourne un bug
    Chemin introuvable
    Ya-t-il un moyen de résoudre ce problème?

    Par avance, je vous remercie.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  2. #2
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Une solution serait de passer par les commandes DOS (MOVE)

    http://support.microsoft.com/kb/466425/fr
    Jérôme

  3. #3
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut arborescence
    Bonjour Jérôme.

    Merci pour ta réponse.

    Cette commande DOS move est bien effective, mais déplace seulement l'arborescence, comme semble-t-il indiqué par Microsoft.

    déplacement de l'arborescence du répertoire source vers le répertoire cible.
    Or, une fois le répertoire créé par la méthode Mkdir, j''aurais souhaité copier l'ensemble des fichiers intégrés dans chaque arborescence.

    Question connexe. Cette limite de longueur est elle prise en compte dans les versions d'Excel ultérieures à 2003?

    Merci encore.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  4. #4
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut déplacement API
    Bonjour à tous,

    J'ai trouvé la solution sur la toile.
    Elle réside en l'utilisation des
    API Windows
    (???)

    Voici le code (méthode : copie puis suppression du ficier origine)

    NE ME DEMANDEZ PAS DE TRADUIRE!

    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    Type SHFILEOPSTRUCT
    hwnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Boolean
    hNameMappings As Long
    lpszProgressTitle As String
    End Type
     
    Const FO_MOVE = 1
    Const FO_COPY = 2
    Const FO_DELETE = 3
    Const FO_RENAME = 4
     
    Const FOF_SILENT = 4
    Const FOF_NOCONFIRMATION = 10
     
    Private Declare Function SHFileOperationA Lib "Shell32.dll" _
    (lpFileOp As SHFILEOPSTRUCT) As Long
     
    Private Function CopieDossier(Source As String, Dest As String, _
    Optional Action As Byte, Optional Animation As Boolean) As Boolean
    Dim OpStruct As SHFILEOPSTRUCT
     
    With OpStruct
    .wFunc = Action
    .pFrom = Source
    .pTo = Dest
    'POUR MESSAGE AVANT D'ÉCRASER : 4 AU LIEU DE 10
    .fFlags = 10
    End With
    CopieDossier = IIf(SHFileOperationA(OpStruct), False, True)
    End Function
     
    '---------------------------------
    Sub Test()
     
    Dim Source As String
    Dim Dest As String
     
    Source = "lerépertoireorigine\*.*"
    Dest = "lerépertoirecible\"
     
    If CopieDossier(Source, Dest, FO_COPY, True) Then
    Kill source
    Else
    MsgBox "Un problème fut rencontré."
    End If
    End Sub
    Ici, les varaiables source et Dest désigne des dossiers. Elles peuvent aussi désigner des fichiers précis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Source = "lerépertoireorigine\lefichier.pdf"
    Dest = "lerépertoirecible\lefichier.pdf"
    Restriction rencontrée : les fichiers
    Thums.db
    Si quelqu'un peut me désigner ce que ce type de fichier représente, alors qu'il n'hésite pas!

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème dans une chaîne de caractères
    Par sky88 dans le forum Débuter
    Réponses: 8
    Dernier message: 05/12/2008, 10h49
  2. [Sous rapport] Chaine de caractère trop longue
    Par msurf dans le forum iReport
    Réponses: 5
    Dernier message: 28/03/2007, 16h24
  3. Réponses: 15
    Dernier message: 23/01/2006, 04h35
  4. SQL String // Chaine de caractères trop longue
    Par Didier100 dans le forum Bases de données
    Réponses: 7
    Dernier message: 17/10/2005, 21h57
  5. Problème sur des chaînes de caractères
    Par Anonymous dans le forum Access
    Réponses: 9
    Dernier message: 16/09/2005, 08h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo