VBA: Création d'onglets et extraction des données

Nnaks

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide dans l'espoir de pouvoir adapter une macro existante sur un premier fichier à un autre fichier plus compliqué et dont la bade de données est plus importante.

L'idée étant de pouvoir créer autant d'onglets que de nombre de "travées" existantes, et d'y affecter dans chacun des onglets l'ensemble des codes articles associés.

Des zones de texte explicitent mieux le problème sur les fichiers.

En pièce jointe, le fichier "A traiter" sur lequel j'aimerai affecter ma macro existante sur le fichier "Nnaks Dispatche". J'ai essayé pas mal de combinaisons mais c'est un vrai casse tête.

Si l'un d'entre vous pouvait m'aider, je lui en serai très reconaissant.

Je vous remercie d'avance pour votre aide.
 

Pièces jointes

  • Nnaks24 Dispatche V001.xls
    40.5 KB · Affichages: 76
  • A traiter.xls
    48.5 KB · Affichages: 120
  • A traiter.xls
    48.5 KB · Affichages: 136
  • A traiter.xls
    48.5 KB · Affichages: 129

david84

XLDnaute Barbatruc
Re : VBA: Création d'onglets et extraction des données

Bonjour,
tu parles de création d'onglet, or aucun onglet n'apparaît dans ton fichier exemple.
Je te conseille de refaire un fichier exemple qui soit fidèle à ta demande, quitte à ne mettre qu'une dizaine de données dans ta base, juste avec 2 ou 3 onglets créés que l'on puisse comprendre ton attente.
A+
 

Nnaks

XLDnaute Nouveau
Re : VBA: Création d'onglets et extraction des données

Bonjour david84,

Sur mon fichier "Nnaks Dispatche", lorqu'on lance la macro Dispatche, la création d'onglets se fait automatiquement. En supposant qu'elles soient déjà existantes, la macro ne les crée pas une seconde fois, mais copie colle seulement les données souhaitées.
Sur le second fichier, on peut supposer que les onglets existente déjà. Je vous mets en pièce jointe un fichier avec les onglets existants.

Merci en tout cas pour votre réponse
 

Pièces jointes

  • A traiter.xls
    51 KB · Affichages: 87
  • A traiter.xls
    51 KB · Affichages: 89
  • A traiter.xls
    51 KB · Affichages: 70

david84

XLDnaute Barbatruc
Re : VBA: Création d'onglets et extraction des données

Re
bon, si je comprends bien, tu as 2 fichiers et tu souhaites raffraîchir les emplacements liés aux codes articles.
Ensuite, la macro que tu as te créé les onglets.
Est-ce bien cela?
Si oui, est-ce que tes 2 fichiers sont ouverts lors de cette procédure ou le fichier A Traiter est-il fermé ?
Si les 2 fichiers sont ouverts au moment où tu lances ta macro, l'actualisation de tes emplacements peut-être fait par formule ou par macro : quelle solution préfères-tu ?
A+
 

Nnaks

XLDnaute Nouveau
Re : VBA: Création d'onglets et extraction des données

Re,
La macro que j'ai créé est une macro spécifique au fichier "Nnaks Dispatche" et elle exécute avec exactitude les tâches que je souhaiterais voir se réaliser sur le fichier "A traîter". Cela n'a rien à voir avec l'ouverture des 2 fichier ou la fermeture de l'un d'entre eux.
Il faudrait que je crée une macropour le fichier "A traîter" qui me permettrait d'exécuter les mêmes tâches que dans le fichier exemple.
A savoir:
- Optionnel: Créer un onglet par nom de travée.
- Récupérer les données "Code Article" en colonne H affectées à chaque "travée" en colonne AD et les coller sur chaque onglet portant le nom de la travée concernée (Colonne A pour "Travée" et J pour "Code Article")
*Par exemple, Obtenir tous les codes articles affectés à l'emplacement A2 dans l'onglet A2" (de la même manière que le fichier "Nnaks Dispatche" qui n'est qu'un exemple montrant le résultat attendu avec sa macro spécifique)

Je te remercie david84 pour ta patience et ton aide.
 

Nnaks

XLDnaute Nouveau
Re : VBA: Création d'onglets et extraction des données

Voici le code tel que j'ai essayé de l'affecter à mon fichier "A traîter"


HTML:
Option Explicit

Sub Dispatche()
Dim Lg As Long
Dim I As Integer
Dim Cel As Range
Dim MonDico As Object
Dim Tablo()

  Application.ScreenUpdating = False
  Set MonDico = CreateObject("Scripting.Dictionary")
  With Sheets("V15")
    Lg = .Range("AD" & Rows.Count).End(xlUp).Row
    For Each Cel In .Range("AD11:AD" & Lg)
      If Cel <> "" Then MonDico(Cel.Value) = Cel.Value
    Next Cel
    Tablo = MonDico.items
    For I = 0 To UBound(Tablo)
      .Range("H11:H" & Lg).AutoFilter Field:=2, Criteria1:=Tablo(I), VisibleDropDown:=False
      On Error Resume Next
      Sheets(Tablo(I)).Select
      If Err.Number > 0 Then
        Sheets.Add after:=Sheets(Sheets.Count)
        ActiveSheet.Name = Tablo(I)
      End If
      On Error GoTo 0
      
      .Range("H4:H" & Lg).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets(Tablo(I)).Range("A6")
    Next I
    .AutoFilterMode = False
    .Select
  End With
End Sub
 

Nnaks

XLDnaute Nouveau
Re : VBA: Création d'onglets et extraction des données

Bonjour Gilbert_RGI,

Je te remercie pour ton aide. On s'approche de plus en plus du but. Ce qu'il faudrait en fait, c'est de ne récupérer que la colonne H "Code Article" et la colonne AD "travée", qu'il faudrait coller sur les autres onglets sur les colonnes respectives J pour "Code Article" et A pour "Travée". C'est ce qui rend la tâche plus compliqué...

Si tu penses pouvoir y arriver, ce serait juste parfait. J'essaie mais ça ne me donne aucun résultat :/

Merci encore en tout cas.
 

Nnaks

XLDnaute Nouveau
Re : VBA: Création d'onglets et extraction des données

Exactement! Mais il faut les placer sur les colonnes suivantes dans les onglets créés:
- Colonne A pour Travée.
- Colonne J pour Code Article.
Comme indiqué sur l'onglet sdf

Merci beaucoup gilbert_RGI pour ton aide!!
 

david84

XLDnaute Barbatruc
Re : VBA: Création d'onglets et extraction des données

Re
Tu es bien impatient...
comme je ne suis pas sûr de comprendre la suite, je m'arrête là pour l'instant : marque manuellement les résultats attendus sur le fichier ci-joint.
A+
 

Pièces jointes

  • A traiter_Nnaks.xls
    74 KB · Affichages: 64

Nnaks

XLDnaute Nouveau
Re : VBA: Création d'onglets et extraction des données

Re David84

Je te remercie enormément pour ton aide. Ce n'est pas réellement ce que j'attendais mais je te remercie pour ton temps et ton essai.
Je te prie de pardonner mon impatience :) mais c'est juste que j'ai un délai à respecter sur ce travail là.
Merci encore!
 

Discussions similaires

Statistiques des forums

Discussions
312 164
Messages
2 085 867
Membres
103 007
dernier inscrit
salma_hayek