Extraire des données dans un nouveau fichier

350dr

XLDnaute Junior
Bonjour le forum,
Je sollicite vos connaissances pour m’aider à réaliser une action d’extraction de données dans un nouveau fichier Excel.
J’ai bien essayé d’adapter des macros trouvées sur ce forum mais mes connaissances en VBA ne sont pas encore au top.
J’ai tout expliqué dans le fichier joint.
Merci de votre aide.
 

Pièces jointes

  • 350dr.xls
    50.5 KB · Affichages: 74
Dernière édition:
G

Guest

Guest
Re : Extraire des données dans un nouveau fichier

Bonjour

voici une macro qui t'aidera.
Pour enregistrer le nouveau classeur, il te suffit de décommenter les lignes concernant la sauvegarde (en bas) et de mettre le bon chemin.

Pour le reste tu trouveras sur le forum, tout ce qui te sera necessaire.
D'ailleurs j'aurai apprécié de voir dans ton classeur, les tentatives d'adaptation de macro dont tu parles.

Code:
Sub Extraire(strName As String)
    Dim sh As Worksheet
    'Tester si une feuille du nom contenu dans strName existe déjà
    On Error Resume Next
    Set sh = ThisWorkbook.Sheets(strName)
    On Error GoTo 0
    'Si la feuille n'exitait pas, on la crée et la nomme
    If sh Is Nothing Then
        Set sh = ThisWorkbook.Sheets.Add
        sh.Name = strName
    Else
        sh.Rows.Delete    'tout supprimer si la feuille existe déjà
    End If
    'Créer un zone de critères d'extraction
    sh.Range("A1") = "Nom"
    sh.Range("A2") = strName
    'Extraire les données
    With Sheets("Donnée").Range("A1").CurrentRegion
        .Rows(1).Resize(, 17).Copy Destination:=sh.Range("A4")
        .AdvancedFilter Action:=xlFilterCopy, criteriarange:=sh.Range("A1:A2"), copytorange:=sh.Range("A4").Resize(, 17)
    End With
    
    'Supprimer les lignes de la plage de critère + 1
    sh.Rows("1:3").EntireRow.Delete
    'Si l'extraction a retourné plus d'une ligne alors créer un nouveau classeur avec
    If sh.Range("A1").CurrentRegion.Rows.Count > 1 Then
        sh.Copy
        ' ActiveWorkbook.SaveAs "CheminEtNomdufichier.xls"
    Else
        MsgBox "Aucune donnée extraite pour '" & strName & "'", vbInformation, "Extraction"
    End If
End Sub

A+
 

MJ13

XLDnaute Barbatruc
Re : Extraire des données dans un nouveau fichier

Bonjour 350dr, Ges

Tu peux t'inspirer de ce fichier en définissant ta base de données, ta zone de critère et ta zone de destination. L'extraction se fait avec une ligne de code. Tape F5 pour voir les zones nommées.
 

Pièces jointes

  • 350drV2.xls
    67.5 KB · Affichages: 77
  • 350drV2.xls
    67.5 KB · Affichages: 84
  • 350drV2.xls
    67.5 KB · Affichages: 83

ddman17

XLDnaute Nouveau
Re : Extraire des données dans un nouveau fichier

Slt Hasco,

est ce que c applicable pour le fichier ci-joint ?

Merci
 

Pièces jointes

  • Equipement Database.xls
    42 KB · Affichages: 43
  • Equipement Database.xls
    42 KB · Affichages: 43
  • Equipement Database.xls
    42 KB · Affichages: 42

350dr

XLDnaute Junior
Re : Extraire des données dans un nouveau fichier

Bonjour Hasco
J'essaie en vain d'adapter ta macro à on projet.
Je ne comprends pas la fonction "StrName".
Dans ta macro, la fonction StrName fait référence à plusieurs reprises à un nom pour vérifier si la feuille existe, pour la créer... mais je ne comprends pas comment StrName peut prendre la valeur du nom choisi dans ma ComboBox.
2ème problème, J'ai la commande "Privat Sub CommandeButton1_()" qui fait doublon avec la commande "Sub Extraire(strName As String)" de ta macro. Là idem, je ne sais pas comment m'en sortir.
Désoler si mes questions sont basiques, c'est un peu le problème quand on débute.
Merci
 

350dr

XLDnaute Junior
Re : Extraire des données dans un nouveau fichier

Bonjour le forum.
J’ai à nouveau besoin de vos connaissances.
J'ai bien avancé dans la construction de mon fichier grâce à l'aide d'Hasco et de MJ13
Il me reste 2 problèmes à résoudre.
1_Quand je veux enregistrer mon fichier, j'ai une erreur sur cette ligne:
ActiveWorkbook.SaveAs Range("G4").Value & "\" & Range("G3").Value & ".xls"

J’ai bien vérifié que le chemin spécifié en G4 ne contient pas d’erreur et existe bien, j’imagine que ma commande contient une erreur mais je ne vois pas laquelle.

2_ Est-il possible de s'affranchir de la demande de confirmation de suppression du fichier suite à cette commande:
Sheets("Extraction").Select
ActiveWindow.SelectedSheets.Delete

Je joins mon fichier d’exemple.
Merci de votre aide.
 

Pièces jointes

  • 350drV2.xls
    50.5 KB · Affichages: 51
  • 350drV2.xls
    50.5 KB · Affichages: 55
  • 350drV2.xls
    50.5 KB · Affichages: 52

350dr

XLDnaute Junior
Re : Extraire des données dans un nouveau fichier

Bonsoir,
J'ai essayé de simplifier ma ligne par:
Sheets("extraction").saveAs Range("X12").value & "\" & Range ("W12").value & ".xls"

Le problème est que X12 et W12 son sur la feuille "Rechercher"
Quelqu'un pourais l'aider SVP, il ne me reste plus que se problème pour finaliser mon projet
Merci d'avance
 

Discussions similaires

Réponses
6
Affichages
636
Réponses
8
Affichages
411

Statistiques des forums

Discussions
312 413
Messages
2 088 201
Membres
103 766
dernier inscrit
mahieux