Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Découper les informations d'une colonne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

Salgueiro

Guest
Bonjour
J'ai un listing d'emails de 5000/6000 emails sur une une seule colonne A, j'ai besoin d'effectuer un découpage de cette liste par des fichiers excell séparés d'une colonne avec seulement 200 adresses emails à chaque fois.
Est-ce possible d'automatiser ce travail ?
merci à tous
 
Bonjour le fil, le forum

@Salgueiro [Bienvenue sur le forum]
Oui, c'est possible.
Mais avec un fichier exemple et des adresses mail fictives pour faire un test ce serait plus simple de t'aider, non?

En attendant ton fichier, je t'invite également à lire ce récent fil et notamment les propositions de mapomme.
Tu devrais y trouver du code VBA te permettant de faire ce que tu souhaites (moyennant quelques adaptations)
 
Dernière édition:
Bonjour le fil, le forum

code VBA testé:

Sub Decoupage_mail()
Application.ScreenUpdating = False
Dim i, j, nbr As Integer
'Détection de la dernière ligne
nbr = Range("A1").End(xlDown).Row
j = 0
For i = 1 To nbr Step 200
Range("A" & i & ":A" & i + 199).Copy
j = j + 2
Cells(1, j + 1).PasteSpecial Paste:=xlPasteValues
Next
'Largeure automatique des colonnes
Cells.Select
Cells.EntireColumn.AutoFit
'Suppression de la colonne source
Range("A:A").Delete
Application.ScreenUpdating = True
End Sub
 
Re


Oui, mais dans un classeur distinct pour chaque liste de 200 mails.
Comme dans la macro ci-dessous
(code adapté d'une macro sortie de la poussière de mes archives)
VB:
Sub Eclater_Feuille2NWkb()
Dim Plage As Range, Lig As Range, strPath$, Feuille As Worksheet
On Error Resume Next
strPath = ThisWorkbook.Path & "\"
Set Plage = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
Set Feuille = Plage.Parent: Set Lig = Plage.Rows(1)
Application.ScreenUpdating = False
For i = 1 To Plage.Rows.Count Step 200
    NBLig = 200
    If (Plage.Rows.Count - Lig.Row + 1) < 200 Then NBLig = Plage.Rows.Count - Lig.Row + 1
    Lig.Resize(NBLig).Copy
    Workbooks.Add xlWBATWorksheet
        With ActiveWorkbook
            .Sheets(1).Range("A1").PasteSpecial
            .SaveAs strPath & "emails_" & i & ".xls"
            .Close True
        End With
    Set Lig = Lig.Offset(200)
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Attendons le retour du demandeur (et éventuellement de son fichier exemple) pour savoir quelle la bonne interprétation de sa question 😉
 
Bonjour
merci pour votre participation.Effectivement ce que je souhaite et qu'à partir d'un fichier initial de 5000emails je le découpe en autant de fichiers avec par colonne 200 emails maximun (soit 5000/200=25 fichiers excells.
 
Bonsoir
Après phase de test celui fonctionne, juste que lorsque on obtient les fichiers et que l'on souhaite les ouvrir par click direct un message d'erreur apparait :" le format et l'extension du fichier ne correspond pas". Néanmoins celui-ci reste valide si on l'ouvre après avec excell 2013. Un moyen de corriger ?
cdt
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
172
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…