Macro (mac si possible): couper liste

Résolu
Bonjour,
Je cherche un moyen automatique de passer d'un fichier de 15K lignes (des emails en colonne A) à 60 fichiers de 250 lignes (sans doulbons, 1 mail 1 fois, en tout). Je dois faire un envoie d'emails automatiques mais ma liste de 15K est considérée comme spam...
Je voudrais éviter de le faire à la main. Une idée ? merci!

3 réponses

  1. code utilisé:

    Sub Decoupage()

    j = 1
    For i = 15000 To 0 Step -250

    Workbooks("MaListe.xlsx").Worksheets("Feuil1").Range("A1:A250").Cut
    Workbooks.Add
    ActiveSheet.Paste
    ActiveWorkbook.SaveAs FileName:="ListeCourte " & j & ".xlsx"
    ActiveWorkbook.Close
    Workbooks("MaListe.xlsx").Worksheets("Feuil1").Range("A1:A250").Delete
    j = j + 1

    Next i
    End Sub
    1. Contributeur
      Une petite macro en VBA qui devrait permettre de faire ça assez facilement :

      Sub Decoupage()

      j = 1
      For i = 15000 To 0 Step -250

      Workbooks("MaListe.xlsx").Worksheets("Feuil1").Range("A1:A5").Cut
      Workbooks.Add
      ActiveSheet.Paste
      ActiveWorkbook.SaveAs FileName:="ListeCourte " & j & ".xlsx"
      ActiveWorkbook.Close
      Workbooks("MaListe.xlsm").Worksheets("Feuil1").Range("A1:A5").Delete
      j = j + 1

      Next i
      End Sub


      Il faudra évidemment vérifier à adapter le nom du classeur initial (ici "MaListe.xlsx") et la feuille sur laquelle se trouvent les données (par défaut "Feuil1")
      1. Bonjour, merci bcpp!!. Ca tombe bien, mon fichier s'appelle MaListe et j'ai la Feuil1. J'ai cette erreur aussi: j'ai obtenu une liste courte de 5 noms. J'ai fait uen erreur? et aussi une erreur mentionnant l'indice 9.
      2. Contributeur
        @TOT127;) ah, oui, j'ai oublié de corriger sur ce point (j'ai testé avec une version simplifiée). Là où il y a "A1:A5", il faut mettre "A1:A250", bien entendu.

        Je vois d'ailleurs que j'ai aussi oublié de corriger l'extension du nom "MaListe.xlsm" en "MaListe.xlsx" la deuxième fois. Probablement est-ce d'ailleurs là qu'est l'origine de l'erreur (ça a toutes les chances de bloquer)...

        Pour cette erreur, sinon, il faudrait en dire plus sur le contexte. Déjà la version et le niveau de mise à jour d'Excel ainsi que la version de Mac OS X concernée. Et ensuite à quel "moment" survient l'erreur, quelle est la ligne surlignée en jaune lorsque tu cliques sur "Déboguer",...
      3. Bonjour,

        Dans le script proposé, il y a un truc qui m'étonne et qui expliquerait bien la liste de 5 noms obtenue, c'est le
        Range("A1:A5")
        .
        J'aurais mis la taille de la liste souhaitée soit 250.

        À essayer

        Ritchi
      4. ça semble avoir fonctionné. je les enregistre tous et je vous dit
      5. Bon, il a généré 60 fichiers ListeCourte, mais ils sont vides. J'ai macOS Sierra 10.12.6 (16G29), et excel mac 15.33.
    2. Bonjour,

      Faites des envois par paquet de 250 lignes avec une boucle , pas besoin de decouper en 60 fichiers
      1. Je ne peux pas, le site mailchimp incrimine ma liste donc ils veulent des listes courtes
      2. excel, txt ou csv