Somme colonne de plusieurs fichiers
Bonjour à tous.
Tout d'abord je tiens à préciser que c'est la première fois que j'utilise VBA.
Je vous explique mon problème.
J'ai plusieurs fichiers xslx dans un répertoire et ces fichiers sont identiques.
Dans chaque fichiers plusieurs articles avec une quantité.
J'aimerais avoir un fichier avec la somme par article.
J'ai fait des recherche et j'ai trouvé un code que j'ai adapté.
Le seul problème c'est que ce code ne me donne un résultat que pour une ligne, dans l'exemple G77.
Pouvez vous m'aider à adapter ce code ou m'en conseiller un autre pour que j’obtienne la somme pour chaque articles.
Merci d'avance.
Private Sub CommandButton1_Click() 'bouton "Somme"
Dim CO As Workbook 'déclare la variable CO (Classeur Original)
Dim OO As Object 'déclare la variable OO (Onglet Original)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)
Dim OD As FileDialog 'déclare la variable OD (boîte Ouvrir Dossier)
Dim CH As String 'déclare la variable CH (CHemin d'accès)
Dim SF As Object 'déclare la variable SF (Système de Fichiers)
Dim DT As Object 'déclare la variable DT (Dossier de Travail)
Dim FS As Object 'déclare la variable FS (FichierS)
Dim F As Object 'déclare la variable F (Fichier)
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim OS As Object 'déclare la variable OS (Onglet Source)
Dim SO As Double 'déclare la variable SO (SOmme)
ActiveCell.Select 'enlève le focus au bouton
Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set CO = ThisWorkbook 'définit le classeur original CO
Set OO = CO.Sheets("Feuil1") 'définit l'onglet original OO (à adapter)
Set DEST = OO.Range("G77") 'définit la cellule de destination DEST (à adapter)
Set OD = Application.FileDialog(msoFileDialogFolderPicker) 'définit la boîte de dialogue OD
deb: 'étiquette
With OD 'prend en compte la boite de dialogue OD
If .Show = -1 Then 'condition : si bouton [OK} de la boîte de dialogue OD
CH = OD.SelectedItems(1) 'récupère le chemin complet du dossier choisi
Else 'si bouton [Annuler] ou fermeture sans choix
'message et retour à la boîte de dialogue via l'étiquette "deb"
MsgBox "Vous devez sélectionner un dossier et valider !": GoTo deb
End If 'fin de la condition
End With 'fin de la prise en compte de la boîte de dialogue OD
Set OD = Nothing 'vide de la mémoire l'objet OD
'si aucun dossier n'a été sélectionné, message, sort de la procédure
If CH = "" Then MsgBox "La Somme est abandonée !": Exit Sub
Set SF = CreateObject("Scripting.FileSystemObject") 'définit le système de fichiers SF
Set DT = SF.GetFolder(CH) 'définit le dossier de travail DT
Set FS = DT.Files 'définit l'ensembles des fichiers du dossier de travail DT
For Each F In FS 'boucle sur tous les fichiers F de l'ensemble FS
If UCase(Right(F.Name, 5)) = ".XLSX" Then 'condition : si le fichier à une extension ".xlsx"
Workbooks.Open (F) 'ouvre le fichier
Set CS = ActiveWorkbook 'définit le classeur source CS
Set OS = CS.Sheets("Feuil1") 'définit l'onglet source OS (à adapter)
SO = SO + OS.Range("G77").Value 'définit la somme SO
CS.Close SaveChanges:=False 'ferme le classeur source sans enregistrer
End If 'fin de la condition
Next F 'prochain fichier de la boucle
DEST.Value = SO 'place la somme dans la celllule DEST
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End SubBonjour,
Regarde le lien fourni dans ce sujet.
https://forum.excel-pratique.com/viewtopic.php?f=2&t=108102
Cdlt.
Bonjour.
Merci pour ta réponse Jean-Eric.
J'ai récupéré le fichier ainsi que l'exemple d'utilisation, mais je n'arrive pas à l'adapter à mon cas.
As tu d'autres conseilles à me donner ?
Merci.
Bonjour,
Quelle est (sont) la (les) difficultés rencontrées ?
Cdlt.