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 :

ProgressBar dans traitement fichiers [XL-365]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Femme Profil pro
    retraitée
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 75
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Par défaut ProgressBar dans traitement fichiers
    Bonjour à tous
    J'ai écrit un "programme" pour renommer en série des fichiers.
    Comme je trouve, lors de la sélection de répertoires où j'ai beaucoup de sous-répertoires et de fichiers, que le temps
    est un peu long et que l'on se demande par conséquent s'il se passe quelque chose, j'ai voulu mettre un userform avec barre
    de progression.
    Mais je n'arrive pas à mettre ma macro "Patienter" de telle sorte que tout se passe de façon correcte.
    Pour ce cas, fichier : Renommer_Fichiers_avec_mess-patience.xlsm

    J'ai essayé avec userform différent en calculant le nombre de fichiers à traiter et par conséquent faire évoluer
    en pourcentage...dans les 2 cas, je galère..rien n'est correct
    Pour ce cas, fichier : renommer_test_progress_pcent.xlsm

    Je vous joins les 2 fichiers, peu m'importe message simple (1er cas) ou pourcentage (2ème cas), l'essentiel est que tout se passe d'une
    façon cohérente.

    Je précise que je peux avoir de 10 fichiers à 5000 fichiers à renommer selon les cas.
    Inutile de dire que j'ai parcouru beaucoup de forums, mais je n'ai pas réussi à adapter les exemples correctement pour mon cas.

    Grand merci par avance à ceux qui pourront me sortir de là.
    Bonne journée.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour

    Peut-être cette discution pourrais te mettre sur la voie

    https://www.developpez.net/forums/d1.../#post10992215

  3. #3
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    Salut

    Attention ici
    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
    Sub ListeFichiers(MonRep As String)
    'Référence "Microsoft Scripting RunTime" activée
        Set Fso = CreateObject("Scripting.FileSystemObject")
        Set SourceFolder = Fso.GetFolder(MonRep)
     i = i + 1
    'Boucle sur tous les fichiers du répertoire
        For Each FileItem In SourceFolder.Files
            'Nom du fichier
            Cells(i, 31) = FileItem.ParentFolder
            'Nom du répertoire
            Cells(i, 32) = FileItem.Name
            NbFichiers = NbFichiers + 1
            i = i + 1
        Next FileItem
        i = i - 1
    '--- Recherche des fichier dans les sous-répertoires ---.
        For Each SubFolder In SourceFolder.subfolders
            ListeFichiers SubFolder.Path
        Next SubFolder
       '  MsgBox NbFichiers
    End Sub
    Ce type de ligne est un nid à ennui, surtout si le temps de déroulement de la macro est long.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(i, 31) = FileItem.ParentFolder
    Si tu changes de feuille active ou de classeur actif, la macro continuera d'écrire... sur la nouvelle feuille active... Il faut préciser sur quelle feuille tu travailles. C'est valable dans les autres macro.



    Tu crées un liste de fichier sur une feuille, puis tu utilises cette liste avec une autre procédure (Renomme_Fichiers). Pour éviter ce passage par une feuille qui ralenti considérablement le temps d'exécution, il serait préférable de passer par un tableau internet.
    Cette contribution, offre la possibilité de créer un listing de fichier (paramétrable) qui sera placé dans un tableau interne. Il y a un exemple d'utilisation quatre messages plus bas. Il suffira ensuite de modifier un peu le code de Renomme_Fichiers pour travailler avec ce tableau interne. Vélocité augmentée garantie... surtout avec 5000 fichiers à traiter.




    La variables peuvent être déclarer dans le même module que les procédures
    Il est conseillé de déclarer l'ensemble des variables, pour ne pas en oublier, il suffit d'ajouter la ligne "Option Explicit" au début du module.
    Ça doit déjà te jouer des tours, ici par exemple
    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
    Sub ListeFichiers(MonRep As String)
    'Référence "Microsoft Scripting RunTime" activée
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set SourceFolder = FSO.GetFolder(MonRep)
     i = i + 1
    'Boucle sur tous les fichiers du répertoire
        For Each FileItem In SourceFolder.Files
            'Nom du fichier
            Cells(i, 31) = FileItem.ParentFolder
            'Nom du répertoire
            Cells(i, 32) = FileItem.Name
            NbFichiers = NbFichiers + 1
            i = i + 1
        Next FileItem
        i = i - 1
    '--- Recherche des fichier dans les sous-répertoires ---.
        For Each SubFolder In SourceFolder.SubFolders
            ListeFichiers SubFolder.Path
        Next SubFolder
       '  MsgBox NbFichiers
    End Sub
    Ta variable NbFichiers est déclaré mais elle est déclaré en porté module public. Donc si tu lances deux fois de suite cette procédure, lors de la deuxième exécution, la valeur de NbFichiers débutera avec la valeur qu'elle avait en fin d'exécution précédente.
    Il serait préférable de faire une déclaration avec une portée locale. (Il faudra bien sûr supprimer la déclaration Public de cette variable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ListeFichiers(MonRep As String)
    Dim NbFichiers As Long '<- A chaque exécution, la variable est réinitialisée (recréée) à 0
    'Référence "Microsoft Scripting RunTime" activée
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set SourceFolder = FSO.GetFolder(MonRep)
     i = i + 1
    '...
    Je ne peux que te conseiller de reprendre ton code pour intégrer les déclartion de variables à l'intérieur des procédures (sauf, bien sûr, pour celles qui devraient être accessible par différentes procédures si cela est nécessaire (mais assez limité si tu utilises des passage de paramètre)




    Attention:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Typ, Dossier, AncienNom, NewFich, NewName As String
    Ici VBA comprend
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Typ As Variant, Dossier As Variant, AncienNom As Variant, NewFich As Variant, NewName As String
    Il faut rrépéter à chaque fois le type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Typ As String, Dossier As String, AncienNom As String, NewFich As String, NewName As String
    (Oui je sais ...)



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Call Chargement.pourcentage(0)
    Cette écriture est obsolète, il est préférable d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
            Chargement.pourcentage 0
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 122
    Par défaut
    Salut

    Fais un essai avec ça

    Le code est réparti dans deux modules

    1er Module
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    Option Explicit
     
    Public Typ As String
     
    Sub TestListeFichiers()
    Dim Cpt As Long, CptKill As Long, NBFich As Long
    Dim Typ As String, Dossier As String, AncienNom As String, NewFich As String, NewName As String
    Dim tiTableau As Variant
    Dim Repertoire As FileDialog
     
        Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
        Repertoire.Show
     
        If Repertoire.SelectedItems.Count > 0 Then
            Dossier = Repertoire.SelectedItems(1)
            Chargement.Show vbModeless
            'On crée la liste des fichiers
            'Ici pas possible de gérer la barre de progression
            'Il faudrait modifier "un peu" ListFilesInFolder pour le gérer...
            tiTableau = ListFilesInFolder(Dossier, ISF_Yes)
            'On regarde s'il y a des fichiers a traiter
            If UBound(tiTableau) > 0 Then
                'On renomme les fichiers en affichant barre de progression
                Renomme_Fichiers_ti tiTableau
            End If
     
            Unload Chargement
        Else
            MsgBox "Aucun Répertoire Sélectionné"
        End If
    End Sub
     
    Function Renomme_Fichiers_ti(tiListing As Variant) As Long
    Dim RowTab As Long
    Dim RetourF As Integer
    Dim CptModif As Integer, CptSupp As Integer
     
        RowTab = 1
        Do While RowTab < UBound(tiListing)
            Chargement.pourcentage CInt(100 * (RowTab / UBound(tiListing)))
     
            RetourF = Modif_Nom(tiListing(RowTab), Typ)
            'On comptabilise
            CptModif = CptModif + IIf(RetourF = 1, 1, 0)
            CptSupp = CptSupp + IIf(RetourF = -1, 1, 0)
            DoEvents
            RowTab = RowTab + 1
        Loop
     
        'Il serait plus élégant d'utiliser le UserForm pour afficher le compte rendu, ça évite les MsgBox à répétition
        'Tu pourrait par exemple modifier sa hauteur pour rendre visible des Label qui contiendraient les informations
        If CptModif = 0 Then
            MsgBox UBound(tiListing) & " fichiers traités" & Chr(10) & Chr(10) & "Aucun fichier renommé"
        Else
            MsgBox UBound(tiListing) & " fichiers traités, " & Chr(10) & Chr(10) & CptModif & IIf(CptModif = 1, " fichier renommé", " fichiers renommés")
            If CptSupp = 0 Then
                MsgBox "Aucun fichier supprimé"
            Else
                MsgBox CptSupp & IIf(CptSupp = 1, " fichier supprimé", " fichiers supprimés")
            End If
        End If
     
    End Function
     
     
    Function Modif_Nom(ByVal PathFichier As String, ByVal TypModif As String) As Integer
    'On retournera
        '0  - Pas de modification
        '1  - Modification du Nom
        '-1 - Suppression du fichier
    Dim Cpt As Integer
    Dim NbCar As Integer, NeedModif As Boolean
    Dim NewName As String, NomFichier As String, NomDossier As String
    Dim Pos1 As Integer, PosPoint As Integer
     
        'Pas bon, il faut travailler uniquement avec le nom pas avec le chemin
        'On extrait le nom et le dossier
        NomFichier = Right(PathFichier, Len(PathFichier) - InStrRev(PathFichier, "\"))
        NomDossier = Left(PathFichier, Len(PathFichier) - Len(NomFichier))
     
        If TypModif = "Deb" Then
            NbCar = 1
            Do While NbCar <= Len(NomFichier) And Not NeedModif
                If Not IsNumeric(Left(NomFichier, NbCar)) Then
                    NbCar = NbCar - 1
                    NeedModif = True
                End If
            Loop
            If NeedModif Then NewName = Right(NomFichier, Len(NomFichier) - NbCar)
        Else
            NeedModif = InStr(2, NomFichier, "UTC)")
            If NeedModif Then
                Pos1 = InStrRev(NomFichier, "(")
                PosPoint = InStrRev(NomFichier, ".")
                NewName = Left(NomFichier, Pos1 - 1) & Right(NomFichier, Len(NomFichier) - PosPoint + 1)
            End If
        End If
     
        'On regarde si le fihcier doit être traité
        If NewName <> "" Then
            'On lui rajoute son chemin d'accès
            NewName = NomDossier & "\" & NewName
            'Si fichier existe , delete
            If Not FichierExiste(NewName) Then
                Name PathFichier As NewName
                Modif_Nom = 1
            Else
                Kill PathFichier
                Modif_Nom = -1
            End If
        End If
    End Function
     
    Public Function FichierExiste(MonFichier As String)
        If Len(Dir(MonFichier)) > 0 Then
          FichierExiste = True
       Else
          FichierExiste = False
       End If
    End Function

    Second Module
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
     
    Option Explicit
     
    Public Enum InclueSubF
        ISF_No = 0
        ISF_Yes = 1
        ISF_AutoOne = 2
        ISF_AutoAll = 3
    End Enum
     
    Sub test()
    Dim tabRetour As Variant
    tabRetour = ListFilesInFolder("c:\essai\", True)
    End Sub
     
    Function ListFilesInFolder(strFolderName As String, Optional IncludeSubfolders As InclueSubF = ISF_No, Optional strTypeFichier As String) As Variant
      ' adapté de Ole P Erlandsen
      ' necessite d'activer la reference Microsoft Scripting RunTime
     
      ' Code modifié par Qwazerty le 14/03/2010
      ' Code initial http://www.developpez.net/forums/d200523/logiciels/microsoft-office/excel/contribuez/lister-fichiers-repertoire-feuille-excel/
      ' En reponse a la demande de ce post http://www.developpez.net/forums/d891321/logiciels/microsoft-office/excel/macros-vba-excel/boucle-fichiers-repertoire/
      ' tabTypeFichier represente une liste des differents extensions a prendre en compte lors du dressage de la liste des fichiers, celle ci seront séparé par ; ex: "xls;doc"
      ' ListFilesInFolder renvoi un tableau contenant le chemin de chaque fichiers
      ' Code modifié par Qwazerty le 04/12/2011
      ' Suite à une réponse sur le forum http://www.developpez.net/forums/d1160038/logiciels/microsoft-office/excel/macros-vba-excel/probleme-renvoi-fonction/#post6379727
      ' hallscar faisait une recherche dans tous les répertoirs si pas de résultat dans le repertoire d'origine
      ' J'ai trouvé la démarche interessante, voila ce que ça donne
      ' ISF_Yes, ISF_No : recherche standard systémique ou uniquement dans le répertoir d'origine
      ' ISF_AutoOne : Recherche systémique jusqu'au 1er résultat trouvé
      ' ISF_AutoAll : Recherche uniquement dans le répertoir d'origine, puis passe en recherche systémique si aucun résultat
      ' Corrections : Lors de la recherche dans les sous répertoire, passage de strTypeFichier
      '               Au même endroit suppression du & ";" systématique qui faussait les résultats...
      '             : Gestion d'erreur sur l'impossibilité de lire un répertoire
      Static FSO As FileSystemObject
      Static bNotFirstTime As Boolean
      Static tabType As Variant, vType As Variant
      Static dicoType As Object
      Static strResult As String
      Dim bTheFirst As Boolean
      Dim oSourceFolder As Scripting.Folder
      Dim oSubFolder As Scripting.Folder
      Dim oFile As Scripting.File
      Dim NeedSubFolder As InclueSubF
     
      'initialisation
      bTheFirst = False
     
      If Not bNotFirstTime Then
        'On identifi le tout premiere appel de la fonction recursive
        bTheFirst = True
     
        Set FSO = CreateObject("Scripting.FileSystemObject")
        Set dicoType = CreateObject("Scripting.Dictionary")
        If strTypeFichier <> "" Then
            'On cré un tableau contenant toutes les extensions / * si rien de precisé
            tabType = Split(strTypeFichier, ";")
            ' a l'aide de ce tableau on renseigne notre dictionnaire
            For Each vType In tabType
                dicoType.Add vType, "Ext"
            Next
        End If
        bNotFirstTime = True
     
        On Error Resume Next
        Set oSourceFolder = FSO.GetFolder(strFolderName)
        On Error GoTo 0
     
        'On regarde si le rep existe bien
        If oSourceFolder Is Nothing Then
          MsgBox "Le répertoir '" & strFolderName & "' n'existe pas." & vbCrLf & "L'execution va prendre fin.", vbExclamation, "Répertoir inconnu"
          GoTo finApp
        End If
     
      End If
     
      Set oSourceFolder = FSO.GetFolder(strFolderName)
     
      'On assure un suivi d'erreur car les repertoires systemes sont souvent inaccessible
      On Error GoTo GestionErr
      'On boucle sur tous les fichier present
      For Each oFile In oSourceFolder.Files
        'On verifie que l'extension du fichier correspond a ce qui est demandé
        If dicoType.Exists(ExtractFileExt(oFile.Name)) Or (strTypeFichier = "") Then
            'On le rajoute dans la chaine result
            strResult = strResult & oFile.Path & ";"
        End If
      Next oFile
    NextRep:
      On Error GoTo 0
     
      If strResult = "" Then
        'Si pas de résultat trouvé
        Select Case IncludeSubfolders
            Case ISF_AutoOne, ISF_No
                'On conserve les choix d'origine
                NeedSubFolder = IncludeSubfolders
            Case Else
                'On passe en recherche systémique
                NeedSubFolder = ISF_Yes
        End Select
      Else
        'Si au poins un résultat
        Select Case IncludeSubfolders
            Case ISF_Yes
                'On conserve le choix d'origine
                NeedSubFolder = IncludeSubfolders
            Case Else
                'On termine la recherche
                NeedSubFolder = ISF_No
        End Select
      End If
     
      'Si on a l'option Sous dossier on boucle sur les sous dossiers
      If NeedSubFolder = ISF_Yes Then
        For Each oSubFolder In oSourceFolder.SubFolders
        'On ajoute les fichiers contenu dans ce rep dans la liste precedente
          strResult = Join(ListFilesInFolder(oSubFolder.Path, NeedSubFolder, strTypeFichier), ";")
          If strResult <> "" Then strResult = strResult & ";"
        Next oSubFolder
      End If
     
    finApp:
     
      'On supprime le dernier ";" s'il il exist
      If Right(strResult, 1) = ";" Then strResult = Left(strResult, Len(strResult) - 1)
     
      'On renvoi le resulta sous forme de tabelau
      ListFilesInFolder = Split(strResult, ";")
     
      'Si on se trouve dans le 1er appel on reinitialise les vaiables Static
      'pour ne pas conserver des valeurs static lors d'une prochaine utilisation de la fonction
      If bTheFirst Then
        Set FSO = Nothing
        Set dicoType = Nothing
        bNotFirstTime = False
        tabType = ""
        vType = ""
        strResult = ""
      End If
     
    GestionErr:
      If Err.Number <> 0 Then
        Select Case Err.Number
            Case 70  'Impossible de lire le répertoire
                'On reset l'erreur
                Err.Clear
                GoTo finApp
            Case Else
                'On affiche l'erreur et on quitte la procédure
                MsgBox Err.Description
                'On reset l'erreur
                Err.Clear
                Resume Next
        End Select
      End If
    End Function
     
    Function ExtractFileExt(strName As String) As String
        If InStr(strName, ".") = 0 Then
            ExtractFileExt = ""
        Else
            ExtractFileExt = Mid(strName, InStrRev(strName, ".") + 1)
        End If
    End Function
    Je n'ai pas pu tester l'entireté du code, il y aura peut-être quelques erreurs

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre actif
    Femme Profil pro
    retraitée
    Inscrit en
    Décembre 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 75
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Décembre 2014
    Messages : 15
    Par défaut
    Bonjour
    Merci à tous, particulièrement à Qwazerty.
    En fait, j'avais hier soir résolu mon problème avec dans ma barre tout simplement le défilement du nom des fichiers de 1 à NbFichiers je listais mes fichiers : au poil
    Mais merci pour tous les conseils.
    Et les codes fournis par Qwazerty fonctionnent nickel , et j'ai chronométré le temps de ma solution ci-dessus et celui de la solution qui m'a été apportée...cette dernière environ 5 fois plus rapide que la mienne.
    Je la garde au chaud et m'y remettrai à tête reposée pour tout comprendre..je vais avoir besoin de vitamines... LOL..

    Bonne journée à tous et un grand merci à Qwazerty qui a beaucoup travaillé pour m'aider.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 04/08/2010, 13h00
  2. [PHP 5.2] Ouverture fichier nouvelle fenêtre dans traitement
    Par ju0123456789 dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2010, 09h23
  3. [XSLT] Définir un ordre de traitement dans un fichier
    Par citizen87 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 13/01/2009, 14h40
  4. Réponses: 0
    Dernier message: 11/02/2008, 18h01
  5. Réponses: 7
    Dernier message: 06/02/2007, 13h27

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