Automatisation de l'extraction de données [Excel]

[Fermé]
Signaler
Messages postés
1
Date d'inscription
samedi 2 septembre 2017
Statut
Membre
Dernière intervention
2 septembre 2017
-
 SlimaVBA -
Bonjour tout le monde!

Je voudrais automatiser une tâche très longue et pénible et je bloque sur certaines choses. La tâche est la suivante:

Je dois sélectionner chaque élément un par un d'une liste déroulante (cela représente des sections). Suite à cela, les données obtenues dans la feuille (pour chaque section) doivent être copiées dans un nouveau classeur tout en conservant la mise en forme et tout en rompant les liaisons. Vous trouverez la photo de l'excel en pièce jointe.

Enfin, je souhaiterais enregistrer automatiquement chaque nouveau classeur généré dans le bon répertoire sous le nom: "Section xxxx - mois YTD" (où "xxxx" change à chaque fois en fonction de la section et "mois" change en fonction du mois).


J'ai fait un code mais il comporte des erreurs. Le voici:


Sub extraire()

Dim s As String, mois As String, xxxx As String

Set wb = ThisWorkbook
Set ws = wb.Worksheets("Réel 2017")
mois = ws.Cells(1, 2).Value
<bold>'xxxx= ??? Comment affecter la section???

'Mise en place de la Combobox</bold>

ws.Cells(1, 3).Value = ComboBox1


<bold>'Parcourir la liste de la combobox et selectionner chaque section</bold>
For i = 1 To UserForm1.ComboBox1.ListCount
s = UserForm1.ComboBox1.List(i)


<bold>'Ouverture du nouveau classeur où je veux copier les valeurs</bold>
Workbooks.Add
Set wb2 = ActiveWorkbook

<bold>'Enregistrement du nom --> Comment le mettre dans le bon répertoire??</bold>
wb2.SaveAs Filename:="Section" & xxxx & "-" & mois & "YTD.xls"


<bold> 'selectionne le tableau à copier dans wb</bold>
wb.Worksheets("Réel 2017").Activate
 ActiveSheet.UsedRange.Select
   
<bold>  'copie  </bold>
Selection.Copy
   
<bold>'Colle dans wb2</bold>[https://img-19.ccm2.net/NfTnS5JNqOILeRAmPi49c4ZXccQ=/205087f8855d4e66b5a3529a93ebf2fc/ccm-ugc/Capture.PNG]
   wb2.Activate
wb2.worksheets(1).Select
 
   Range("A1").Select
  
   Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
Next i

End Sub


Merci infiniment pour votre aide!!! ça me serait vraiment très utile!!

2 réponses

Messages postés
17128
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 octobre 2021
910
bonjour, je n'ai pas compris ceci:Je dois sélectionner chaque élément un par un d'une liste déroulante (cela représente des sections).
quelle liste déroulante? comment se fait le lien entre les éléments et les sections? 
ce serait peut-être plus simple si tu donnais un exemple.
Ma liste déroulante se trouve en C1. Il y a différentes sections de l'entreprise (par exemple la section services financiers, la section DSI etc).. Le fichier est déjà fait et j'ai juste à selectionner un élément de la liste pour que les donnés se mettent à jour. Mon problème est d'automatiser la sélection pour enregistrer chaque fichier obtenu un par un. J'espère que c'est plus clair.