Macro compliqué

Bonjour tous le monde ,

je suis encore débutante en vba et je sais toujours pas comment coder pour des actions complexes, je vous pose ces deux questions si vous pouvez m'aider :

1) est ce que vous pouvez m'orienter vers une formation excel-vba efficace en ligne pour développer mes compétences ou bien ce serait mieux de payer pour une formation avec instructeur ?

2) est ce que vous pouvez me proposer un code ou outils ou fichier pour le problème suivant : j'ai des classeurs excel qui contiennet jusqu'a 30 000 lignes et dont je dois trier selon les valeurs d'auto filtre de une/des colonnes et puis insérer le tableau résultant de chaque valeur de l'auto filtre dans une nouvelle feille et la donner le nom de ce filtre !

jespère que vous m'avez compris , je ne peux pas partager le fichier puisqu'il contient des données personnelles !

Merci d'avance

cordialement

Bonjour,

1) est ce que vous pouvez m'orienter vers une formation excel-vba efficace en ligne pour développer mes compétences ou bien ce serait mieux de payer pour une formation avec instructeur ?

2) est ce que vous pouvez me proposer un code ou outils ou fichier pour le problème suivant : j'ai des classeurs excel qui contiennet jusqu'a 30 000 lignes et dont je dois trier selon les valeurs d'auto filtre de une/des colonnes et puis insérer le tableau résultant de chaque valeur de l'auto filtre dans une nouvelle feille et la donner le nom de ce filtre !

Pour le point 1, c'est ici sur le forum, il y a des cours https://www.excel-pratique.com/fr/vba et surtout les questions/réponses (c'est ici que j'ai vraiment acquis mon expérience)

Pour le point 2, regarde ici si cela convient https://www.excel-pratique.com/fr/telechargements/utilitaires/dispatcher-compiler-excel-no466, pour la partie dispatch

Merci pour vos conseils et je serais ravi d'avoir aussi des propositions de code pour résoudre mon problème

Bonjour,

jespère que vous m'avez compris , je ne peux pas partager le fichier puisqu'il contient des données personnelles !

Si tu n'as pas trouvé ton bonheur avec la réponse de Steelson (point 2), Si ton fichier contient des données personnelles, mets un fichier semblable (même structure) mais avec des données bidons.

La réponse de Steelson est informative bien sur et je le remercie encore.

Voilà un fichier où j'utilise un filtre élaboré je voudrais créer pour le résultat de chaque filtre une nouvelle feuille, peut être que c par boucle mais j'y arrive toujours pas !

merci de me proposer vos suggestions

Cordialement

3filtre-elabore.zip (308.71 Ko)

La réponse de Steelson est informative bien sur et je le remercie encore.

  1. prends le fichier données (il y a aussi un modèle car cela m'a été parfois demandé),
  2. lance la macro,
  3. choisis l'en-tête de la colonne que tu souhaites comme critère,
  4. choisis ensuite le répertoire de stockage des fichiers

J'ai éclaté par fichier, si c'est par feuilles j'adapterai la macro ... je vais le faire de suite du reste

6dispatch.zip (163.54 Ko)

re: Steelson

merci pour votre réponse !

j'ai lancé la macro dans le même document mais il n'apparait que le premier message de choix de critères , le choix de répertoire après est donné mais aucun document n'est enregistré dans le répertoire que j'ai choisi .... l'erreur survient dans la ligne suivant :

wb.SaveAs (MonRepertoire & "\" & racine & "_" & cle1 & ".xlsx")

bonjour,

La réponse de Steelson est informative bien sur et je le remercie encore.

Ah ben non, il te propose une solution !!!!

La même chose mais par onglet, car je pense que c'était plus ton sujet.

Option Explicit
Public critere%

Sub dispatcher()
Dim Tbl As Variant, data As Variant, i%, ws As Worksheet, entete
Dim dico1 As Object, cle1 As Variant, result1 As Variant
Dim colonne$

    UserForm1.Show
    If critere = 0 Then Exit Sub

    Application.DisplayAlerts = False
        For Each ws In Worksheets
            If ws.Name <> ActiveSheet.Name Then ws.Delete
        Next
    Application.DisplayAlerts = True

    data = Cells(Rows.Count, 1).End(xlUp).CurrentRegion

    Set dico1 = CreateObject("Scripting.Dictionary")
    For i = LBound(data) + 1 To UBound(data) ' hors en-tête
        dico1(data(i, critere)) = ""
    Next

    Application.ScreenUpdating = False
        For Each cle1 In dico1.Keys
            result1 = filtreArray(data, critere, cle1)
            With ThisWorkbook
                Set ws = .Sheets.Add(After:=.Sheets(.Sheets.Count))
            End With
            ws.Name = cle1
            ws.Cells(1, 1).Resize(1, UBound(data, 2)) = data
            ws.Cells(2, 1).Resize(UBound(result1, 1), UBound(result1, 2)) = result1
        Next
    Application.ScreenUpdating = True

    MsgBox "Terminé !"

End Sub
5donnees.xlsm (288.24 Ko)

j'ai lancé la macro dans le même document mais il n'apparait que le premier message de choix de critères , le choix de répertoire après est donné mais aucun document n'est enregistré dans le répertoire que j'ai choisi .... l'erreur survient dans la ligne suivant :

curieux, je vais te faire une vidéo ...

Merciiiiiiiiiiiiiii !

j'ai résolu le prob de répertoire et j'ai eu les résultats pour la première solution

Cette deuxième solution marche aussi .... je l'utilise pour d'autres manip ..... merci de me donner le choix ( par onglets ou par nouvelle feuilles ) !

bonne fin de journée

la vidéo ... ben non, elle st trop lourde donc statique !

C'est bon .... vous avez bien expliqué c'était juste pour moi un problème au niveau de ma version ... merci infiniment il y' a une image sur le lien du dipatcher que vous avez partagé je pense que ça aide déjà !

Merci pour votre intérêt !

Rechercher des sujets similaires à "macro complique"