Extraction de données à partir de plusieurs classeurs excel

Elona

XLDnaute Nouveau
Bonjour,

Dans le cadre de mon travail je dois analyser et traiter des résultats mais le travail est assez fastidieux. Je viens vers vous car je n'arrive pas à trouver ce que je veux sur les forums pour faciliter ce travail.

Je cherche à faire une extraction de données à partir de plusieurs fichiers excel pour les regrouper dans un seul.

En fait, je fais des expériences (j'en fais chaque semaine encore et encore), pour chaque expérience un fichier excel est généré. J'ai mis en pièce jointe un exemple : GM5_20c (le nom du fichier commence toujours par "GM"). Dans ces fichiers excel, il y a quatre feuilles qui m'intéressent (j'ai supprimer les autres) :
- "IntResults1" ===> elle correspond à "310 nm"
- "IntResults2" ===> elle correspond à "254 nm"
- "IntResults3" ===> elle correspond à "280 nm"
- "IntResults4" ===> elle correspond à "Fluo"

Dans ces feuilles excel, je veux extraire les données dans les colonnes E ; F ; G et H pour les transférer les unes à la suite des autres dans un fichier excel appelé "Récapitulatif" et plus précisément dans la feuille "Données brutes UV" de ce fichier.

Mais dans le fichier récapitulatif, j'aimerais que dans la colonne A s'affiche le nom du fichier excel source (à savoir GM5_20c dans mon exemple) sur chaque ligne et dans la colonne B s'il s'agit de 310 nm/254 nm/280 nm selon qu'il s'agit de la feuille IntResults1/IntResults2/IntResults3.

Pour les données issues de la feuille "IntResults4", j'aimerais qu'elles apparaissent dans une autre feuille appelée "Données brutes Fluo". Mais le principe est le même : indiquer le nom du fichier excel source dans la colonne A et "Fluo" dans la colonne B.

Remarques :
- je suis une cruche en ce qui concerne les macros sous excel (c'est pas faute d'avoir essayé de comprendre) ;
- les fichiers se trouvent/se trouveront tous dans le même dossier répertoire ;
- le nombre de données (nombre de ligne) varient d'un fichier excel à un autre (voire même d'une feuille à une autre) ;
- il est possible que je sois amenée à utiliser ce fichier sur une version plus récente d'excel (2010 voire 2013).

J'aimeras solliciter votre aide afin de pouvoir automatiser cette extraction de données.

Je vous en remercie d'avance :)

Cdt
 

Pièces jointes

  • GM5_20c.xlsx
    41.6 KB · Affichages: 51
  • Récapitulatif.xlsx
    44.1 KB · Affichages: 43
  • Récapitulatif.xlsx
    44.1 KB · Affichages: 52
  • Récapitulatif.xlsx
    44.1 KB · Affichages: 52

Elona

XLDnaute Nouveau
Re : Extraction de données à partir de plusieurs classeurs excel

Re-bonjour,

Oui effectivement j'étais tombée sur ce topic, j'ai essayée d'adapter les deux macros proposées à mon cas mais en vain (enfin après je l'ai peut être mal fait). J'ai juste trois soucis avec ces macros :
- lorsque j’exécute la macro, cela ne copie les données qu'à partir d'un seul fichier excel et les autres rien du tout ;
- les résultats ont bien été transférés dans la feuille "Données brutes UV" que j'ai spécifiée mais en supprimant toutes les autres feuilles de mon classeur excel "Récapitulatif" ;
- je voudrais que la macro me copie en plus le nom des fichiers excel (GM5_20c ; GM5_21a ; GM5_30b ; ...) correspondant à côté de chaque données extraites et également la référence de la feuille (310 nm pour "IntResults1" ; 254 nm pour "IntResults2" ; ...).

je suis sûre que ce n'est pas si compliquée que ça à faire comme macro mais malheureusement je n'y arrive pas du tout :s
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Extraction de données à partir de plusieurs classeurs excel

Bonjour Elona, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim cr As Workbook 'déclare la variable cr (Classeur Resultat)
Dim r1 As Object 'déclare la variable r1 (onglet Réception 1)
Dim r2 As Object 'déclare la variable r2 (onglet Réception 2)
Dim paf As Range 'déclare la variable paf (Plage A Effacer)
Dim ch As String 'déclare la variable ch (CHemin)
Dim f As Variant 'déclare la variable f (Fichier)
Dim cd As Workbook 'déclare la variable cd (Classeur de Données)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim i As Byte 'déclare la variable i (Incrément)
Dim lo As String 'déclare la variable lo (Longueur d'Onde)

Set cr = ThisWorkbook 'définit le classeur resultat cr
Set r1 = cr.Sheets("Données brutes UV") 'définit l'onglet de réception1  r1
Set r2 = cr.Sheets("Données brutes Fluo") 'définit l'onglet de réception2  r2
Set paf = r1.Range("A1").CurrentRegion 'définit la plage à effacer paf
If paf.Rows.Count > 1 Then 'si paf à plus d'une seule ligne
    Set paf = paf.Offset(1, 0).Resize(paf.Rows.Count - 1, paf.Columns.Count) 'redéfinit paf (sans la première line)
    paf.Clear 'supprime les anciennes données
End If 'fin de la condition
Set paf = r2.Range("A1").CurrentRegion 'définit la plage à effacer paf
If paf.Rows.Count > 1 Then 'si paf à plus d'une seule ligne
    Set paf = paf.Offset(1, 0).Resize(paf.Rows.Count - 1, paf.Columns.Count) 'redéfinit paf (sans la première line)
    paf.Clear 'supprime les anciennes données
End If 'fin de la condition
ch = cr.Path 'définit la chemin
f = Dir(ch & "\*.xlsx") 'définit le premier fichier f (fichier dont l'extension est ".xlsx" dans le dossier ch)
Do While f <> "" 'boucle 1 : tant qu'il existe des fichiers avec les caractéristiques au-dessus
    Workbooks.Open f 'ouvre le fichier
    Set cd = ActiveWorkbook 'définit le classeur de données cd
    For i = 1 To 3 'boucle sur les 3 premiers onglets du classeur de données cd
        dl = cd.Sheets(i).Cells(Application.Rows.Count, 5).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 5 (=E)de l'onglet i du classeur cd
        Set dest = r1.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest (colonne C)
        cd.Sheets(i).Range("E2:H" & dl).Copy dest 'copie la plage éditée et la colle dans dest
        r1.Cells(dest.Row, 1).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
        Select Case i 'agit en fonction de la position de l'onglet
            Case 1 'premier
                lo = "310 nm" 'définit la longueur d'onde lo
            Case 2 'second
                lo = "254 nm" 'définit la longueur d'onde lo
            Case 3 'troisième
                lo = "280 nm" 'définit la longueur d'onde lo
        End Select
        r1.Cells(dest.Row, 2).Resize(dl - 1, 1).Value = lo 'place la longueur d'onde lo
    Next i 'prochain onglet de la boucle
    dl = cd.Sheets(4).Cells(Application.Rows.Count, 5).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 5 (=E)de l'onglet 4 du classeur cd
    Set dest = r2.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest (colonne C)
    cd.Sheets(4).Range("E2:H" & dl).Copy dest 'copie la plage éditée et la colle dans dest
    r2.Cells(dest.Row, 1).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
    r2.Cells(dest.Row, 2).Resize(dl - 1, 1).Value = "Fluo" 'place la longueur d'onde lo
    cd.Close 'ferme le classeur de données
    f = Dir 'définit le prochain fichier dont l'extension est ".xlsx" dans le dossier ch
Loop 'boucle
End Sub
 

Elona

XLDnaute Nouveau
Re : Extraction de données à partir de plusieurs classeurs excel

Re-,

Bon en fait, pour l'instant ça bug.

Je croyais que c'était à cause du mode de compatibilité. Je viens de voire que la machine sur laquelle sont enregistrés les fichiers excel sources fonctionne avec une vieille version d'excel tandis que moi j'utilise excel 2007 (en plus je dois bientôt changer de version normalement).

Mais finalement, même en convertissant les fichiers ça ne marche pas :
"Erreur d'exécution 1004.

'GM5_20c.xlsx' est introuvable."

:confused:
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Extraction de données à partir de plusieurs classeurs excel

Bonjour Elona, bonjour le forum,

J'ai eu le même message que toi car j'avais déplacé les fichiers dans un dossier pour faire un test. J'ai refermé Excel puis rouvert et tout et rentré dans l'ordre...
J'ai oublié de préciser que seul les fichiers concernés doivent se trouver dans le dossier de travail. Si ça va pas on peut modifier le code.
Le test effectué chez moi à bien marché...
 

Elona

XLDnaute Nouveau
Re : Extraction de données à partir de plusieurs classeurs excel

Hum, j'ai essayé malheureusement ça ne veut toujours pas marché et j'ai le même message d'erreur. J'ai vérifié seul les fichiers concernés se trouvent dans ce dossier. Où est-ce que j'ai bien pu faire une erreur ? ^^
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Extraction de données à partir de plusieurs classeurs excel

Bonsoir Elona, bonsoir le forum,

J'ai le même problème chez moi et je pense avoir trouvé la solution en rajoutant la ligne :
Code:
ChDir ch 'définit le dossier courant
entre les lignes :
Code:
ch = cr.Path 'définit la chemin
ici ------>   ChDir ch 'définit le dossier courant
f = Dir(ch & "\*.xlsx") 'définit le premier fichier f (fichier dont l'extension est ".xlsx" dans le dossier ch)
Le code modifié complet :
Code:
Sub Macro1()
Dim cr As Workbook 'déclare la variable cr (Classeur Resultat)
Dim r1 As Object 'déclare la variable r1 (onglet Réception 1)
Dim r2 As Object 'déclare la variable r2 (onglet Réception 2)
Dim paf As Range 'déclare la variable paf (Plage A Effacer)
Dim ch As String 'déclare la variable ch (CHemin)
Dim f As Variant 'déclare la variable f (Fichier)
Dim cd As Workbook 'déclare la variable cd (Classeur de Données)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim i As Byte 'déclare la variable i (Incrément)
Dim lo As String 'déclare la variable lo (Longueur d'Onde)

Set cr = ThisWorkbook 'définit le classeur resultat cr
Set r1 = cr.Sheets("Données brutes UV") 'définit l'onglet de réception1  r1
Set r2 = cr.Sheets("Données brutes Fluo") 'définit l'onglet de réception2  r2
Set paf = r1.Range("A1").CurrentRegion 'définit la plage à effacer paf
If paf.Rows.Count > 1 Then 'si paf à plus d'une seule ligne
    Set paf = paf.Offset(1, 0).Resize(paf.Rows.Count - 1, paf.Columns.Count) 'redéfinit paf (sans la première line)
    paf.Clear 'supprime les anciennes données
End If 'fin de la condition
Set paf = r2.Range("A1").CurrentRegion 'définit la plage à effacer paf
If paf.Rows.Count > 1 Then 'si paf à plus d'une seule ligne
    Set paf = paf.Offset(1, 0).Resize(paf.Rows.Count - 1, paf.Columns.Count) 'redéfinit paf (sans la première line)
    paf.Clear 'supprime les anciennes données
End If 'fin de la condition
ch = cr.Path 'définit la chemin
ChDir ch 'définit le dossier courant
f = Dir(ch & "\*.xlsx") 'définit le premier fichier f (fichier dont l'extension est ".xlsx" dans le dossier ch)
Do While f <> "" 'boucle 1 : tant qu'il existe des fichiers avec les caractéristiques au-dessus
    Workbooks.Open f 'ouvre le fichier
    Set cd = ActiveWorkbook 'définit le classeur de données cd
    For i = 1 To 3 'boucle sur les 3 premiers onglets du classeur de données cd
        dl = cd.Sheets(i).Cells(Application.Rows.Count, 5).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 5 (=E)de l'onglet i du classeur cd
        Set dest = r1.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest (colonne C)
        cd.Sheets(i).Range("E2:H" & dl).Copy dest 'copie la plage éditée et la colle dans dest
        r1.Cells(dest.Row, 1).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
        Select Case i 'agit en fonction de la position de l'onglet
            Case 1 'premier
                lo = "310 nm" 'définit la longueur d'onde lo
            Case 2 'second
                lo = "254 nm" 'définit la longueur d'onde lo
            Case 3 'troisième
                lo = "280 nm" 'définit la longueur d'onde lo
        End Select
        r1.Cells(dest.Row, 2).Resize(dl - 1, 1).Value = lo 'place la longueur d'onde lo
    Next i 'prochain onglet de la boucle
    dl = cd.Sheets(4).Cells(Application.Rows.Count, 5).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 5 (=E)de l'onglet 4 du classeur cd
    Set dest = r2.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest (colonne C)
    cd.Sheets(4).Range("E2:H" & dl).Copy dest 'copie la plage éditée et la colle dans dest
    r2.Cells(dest.Row, 1).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
    r2.Cells(dest.Row, 2).Resize(dl - 1, 1).Value = "Fluo" 'place la longueur d'onde lo
    cd.Close 'ferme le classeur de données
    f = Dir 'définit le prochain fichier dont l'extension est ".xlsx" dans le dossier ch
Loop 'boucle
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Extraction de données à partir de plusieurs classeurs excel

Bonsoir Elona, bonsoir le forum,

Essaie comme ça :
Code:
Sub Macro1()
Dim cr As Workbook 'déclare la variable cr (Classeur Resultat)
Dim r1 As Object 'déclare la variable r1 (onglet Réception 1)
Dim r2 As Object 'déclare la variable r2 (onglet Réception 2)
Dim paf As Range 'déclare la variable paf (Plage A Effacer)
Dim ch As String 'déclare la variable ch (CHemin)
Dim sf As Object 'déclare la variable sf (Système de Fichiers)
Dim d As Object 'déclare la variable d (Dossier)
Dim fs As Object 'déclare la variable fs (FichierS)
Dim f As Object 'déclare la variable f (Fichier)
Dim cd As Workbook 'déclare la variable cd (Classeur de Données)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim i As Byte 'déclare la variable i (Incrément)
Dim lo As String 'déclare la variable lo (Longueur d'Onde)

Set cr = ThisWorkbook 'définit le classeur resultat cr
Set r1 = cr.Sheets("Données brutes UV") 'définit l'onglet de réception1  r1
Set r2 = cr.Sheets("Données brutes Fluo") 'définit l'onglet de réception2  r2
Set paf = r1.Range("A1").CurrentRegion 'définit la plage à effacer paf
If paf.Rows.Count > 1 Then 'si paf à plus d'une seule ligne
    Set paf = paf.Offset(1, 0).Resize(paf.Rows.Count - 1, paf.Columns.Count) 'redéfinit paf (sans la première line)
    paf.Clear 'supprime les anciennes données
End If 'fin de la condition
Set paf = r2.Range("A1").CurrentRegion 'définit la plage à effacer paf
If paf.Rows.Count > 1 Then 'si paf à plus d'une seule ligne
    Set paf = paf.Offset(1, 0).Resize(paf.Rows.Count - 1, paf.Columns.Count) 'redéfinit paf (sans la première line)
    paf.Clear 'supprime les anciennes données
End If 'fin de la condition
ch = cr.Path 'définit la chemin
Set sf = CreateObject("Scripting.FileSystemObject") 'définit la variable sf
Set d = sf.getfolder(ch) 'définit la variable d
Set fs = d.Files 'définit la variable fs
For Each f In fs 'boucles sur touts les fichiers du dossier d
    If Right(f.Name, 5) = ".xlsx" And Left(f.Name, 2) = "GM" Then
        Workbooks.Open f 'ouvre le fichier
        Set cd = ActiveWorkbook 'définit le classeur de données cd
        For i = 1 To 3 'boucle sur les 3 premiers onglets du classeur de données cd
            dl = cd.Sheets(i).Cells(Application.Rows.Count, 5).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 5 (=E)de l'onglet i du classeur cd
            Set dest = r1.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest (colonne C)
            cd.Sheets(i).Range("E2:H" & dl).Copy dest 'copie la plage éditée et la colle dans dest
            r1.Cells(dest.Row, 1).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
            Select Case i 'agit en fonction de la position de l'onglet
                Case 1 'premier
                    lo = "310 nm" 'définit la longueur d'onde lo
                Case 2 'second
                    lo = "254 nm" 'définit la longueur d'onde lo
                Case 3 'troisième
                    lo = "280 nm" 'définit la longueur d'onde lo
            End Select
            r1.Cells(dest.Row, 2).Resize(dl - 1, 1).Value = lo 'place la longueur d'onde lo
        Next i 'prochain onglet de la boucle
        dl = cd.Sheets(4).Cells(Application.Rows.Count, 5).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 5 (=E)de l'onglet 4 du classeur cd
        Set dest = r2.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest (colonne C)
        cd.Sheets(4).Range("E2:H" & dl).Copy dest 'copie la plage éditée et la colle dans dest
        r2.Cells(dest.Row, 1).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
        r2.Cells(dest.Row, 2).Resize(dl - 1, 1).Value = "Fluo" 'place la longueur d'onde lo
        cd.Close 'ferme le classeur de données
   End If
Next f
End Sub
 
Dernière édition:

Elona

XLDnaute Nouveau
Re : Extraction de données à partir de plusieurs classeurs excel

On y étais presque :D !!!

Cette fois-ci ça a bloqué à la ligne 41 avec comme message d'erreur :
"Erreur d'exécution '1004' :
Erreur définie par l'application ou par l'objet."

Au fait, merci de prendre le temps de travailler sur cette macro. Je viens de réaliser que ça va faire plus de 6h que tu es dessus, c'est vraiment sympa ;)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Extraction de données à partir de plusieurs classeurs excel

Bonsoir Elona, bonsoir le forum,

Heu.... je ne fais pas que ça tu sais... (je réponds aussi à d'autres, loule !)
Ligne 41 c'est pas très explicite ! Pourrais-tu me copier/coller la ligne qui plante ?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Extraction de données à partir de plusieurs classeurs excel

Bonsoir Elona, bonsoir le forum

Pour moi l'erreur viendrait du fait qu'il n'y aurait aucune ligne éditée (dl=1). Peut-il y avoir des onglets vides ?
Essaie comme ça :
Code:
Sub Macro1()
Dim cr As Workbook 'déclare la variable cr (Classeur Resultat)
Dim r1 As Object 'déclare la variable r1 (onglet Réception 1)
Dim r2 As Object 'déclare la variable r2 (onglet Réception 2)
Dim paf As Range 'déclare la variable paf (Plage A Effacer)
Dim ch As String 'déclare la variable ch (CHemin)
Dim sf As Object 'déclare la variable sf (Système de Fichiers)
Dim d As Object 'déclare la variable d (Dossier)
Dim fs As Object 'déclare la variable fs (FichierS)
Dim f As Object 'déclare la variable f (Fichier)
Dim cd As Workbook 'déclare la variable cd (Classeur de Données)
Dim dl As Integer 'déclare la variable dl (Dernière Ligne)
Dim i As Byte 'déclare la variable i (Incrément)
Dim lo As String 'déclare la variable lo (Longueur d'Onde)

Set cr = ThisWorkbook 'définit le classeur resultat cr
Set r1 = cr.Sheets("Données brutes UV") 'définit l'onglet de réception1  r1
Set r2 = cr.Sheets("Données brutes Fluo") 'définit l'onglet de réception2  r2
Set paf = r1.Range("A1").CurrentRegion 'définit la plage à effacer paf
If paf.Rows.Count > 1 Then 'si paf à plus d'une seule ligne
    Set paf = paf.Offset(1, 0).Resize(paf.Rows.Count - 1, paf.Columns.Count) 'redéfinit paf (sans la première line)
    paf.Clear 'supprime les anciennes données
End If 'fin de la condition
Set paf = r2.Range("A1").CurrentRegion 'définit la plage à effacer paf
If paf.Rows.Count > 1 Then 'si paf à plus d'une seule ligne
    Set paf = paf.Offset(1, 0).Resize(paf.Rows.Count - 1, paf.Columns.Count) 'redéfinit paf (sans la première line)
    paf.Clear 'supprime les anciennes données
End If 'fin de la condition
ch = cr.Path 'définit la chemin
Set sf = CreateObject("Scripting.FileSystemObject") 'définit la variable sf
Set d = sf.getfolder(ch) 'définit la variable d
Set fs = d.Files 'définit la variable fs
For Each f In fs 'boucles sur touts les fichiers du dossier d
    If Right(f.Name, 5) = ".xlsx" And Left(f.Name, 2) = "GM" Then
        Workbooks.Open f 'ouvre le fichier
        Set cd = ActiveWorkbook 'définit le classeur de données cd
        For i = 1 To 3 'boucle sur les 3 premiers onglets du classeur de données cd
            dl = cd.Sheets(i).Cells(Application.Rows.Count, 5).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 5 (=E)de l'onglet i du classeur cd
            Set dest = r1.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest (colonne C)
            cd.Sheets(i).Range("E2:H" & dl).Copy dest 'copie la plage éditée et la colle dans dest
            If dl > 1 Then
                r1.Cells(dest.Row, 1).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
            Else
                r1.Cells(dest.Row, 1).Value = cd.Name
            End If
            Select Case i 'agit en fonction de la position de l'onglet
                Case 1 'premier
                    lo = "310 nm" 'définit la longueur d'onde lo
                Case 2 'second
                    lo = "254 nm" 'définit la longueur d'onde lo
                Case 3 'troisième
                    lo = "280 nm" 'définit la longueur d'onde lo
            End Select
            If dl > 1 Then
                r1.Cells(dest.Row, 2).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
            Else
                r1.Cells(dest.Row, 2).Value = cd.Name
            End If
        Next i 'prochain onglet de la boucle
        dl = cd.Sheets(4).Cells(Application.Rows.Count, 5).End(xlUp).Row 'définit la dernière ligne éditée dl de la colonne 5 (=E)de l'onglet 4 du classeur cd
        Set dest = r2.Cells(Application.Rows.Count, 3).End(xlUp).Offset(1, 0) 'définit la cellule de destination dest (colonne C)
        cd.Sheets(4).Range("E2:H" & dl).Copy dest 'copie la plage éditée et la colle dans dest
        r2.Cells(dest.Row, 1).Resize(dl - 1, 1).Value = cd.Name 'place le nom du classeur
        r2.Cells(dest.Row, 2).Resize(dl - 1, 1).Value = "Fluo" 'place la longueur d'onde lo
        cd.Close 'ferme le classeur de données
   End If
Next f
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 163
Messages
2 085 859
Membres
103 005
dernier inscrit
gilles.hery