Copier coller d'un fichier vers un autre par une macro

Bonjour à tous,

j'ai une matrice qui contient des entetes de colonnes (Nom Parent, Prénom Parent, ....) ; je recois de mes clients des données excel avec ces memes entetes mais pas dans le bon ordre ; je souhaiterai copier les colonnes Nom parents, ... qui peuvent se trouver en A ou B ou C dans ma matrice, comment faire ????

Je reste à votre disposition, merci d'avance.

F. AUDOUY

Bonjour,

Une solution à base de INDEX et EQUIV me parait envisageable.

Mais sans voir à quoi ressemblent tes fichiers, difficile d''en dire plus.

L'idéal serait de nous joindre un extrait de tes fichiers (anonymisés) avec une vingtaine de lignes pour qu'on voie la structure des fichiers et qu'on puisse alors t'apporter une réponse précise.

A te (re)lire

@+

Bonjour,

Hormis la suggestion du Thibo, c'est la question du moment sur le site.

Vois par ici

--> https://www.excel-pratique.com/forum/viewtopic.php?t=12547

ou

--> https://www.excel-pratique.com/forum/viewtopic.php?t=12483

Amicalement

Dan

Bonjour à tous,

je vais etre un peu plus précis dans ma demande, voici le fichier qui contient ce que je dois récupérer :

https://www.excel-pratique.com/~files/doc2/fichier_source.xls

je veux créer un fichier à chaque fois qu'un magasin change pour recréer une feuille du modele du fichier suivant :

https://www.excel-pratique.com/~files/doc2/fichier_dest1.xls

C'est toujours la meme structure en ligne 1, de plus je veux récupérer les noms prenoms du fichier source et les copier coller dans le fichier Dest. Et si c'est possible, sauvegarder le fichier dest sous le nom du magasin du fichier source...

Je remercie par avance vos contributions.

re,

La structure du fichier source est toujours identique à celle là ??

C'est assez difficile de faire un code car le nom du magasin se trouve dans la même colonne que le nom. De plus le nombre de noms est différent d'un à l'autre.

Ce serait mieux par exemple d'avoir le nom du magasin en colonne A et ce, en regard de chaque nom.

Est-ce possible ?

Dan

Bonsoir,

Bonsoir, Dan

un essai

par contre, je n'extrais que les noms/Prénoms, et les numéros de cadeaux, ton exemple n'étant pas représentatif....

Tu enregistres dans un répertoire dédié, les fichiers vont se créer dans ce répertoire...

Le code :

Sub Repartir()
Dim Fl1 As Worksheet, Fl2 As Worksheet
Dim Cel As Range, PremCel As Range, DerCel As Range
Dim LePath As String, LeNom As String
Application.ScreenUpdating = False
LePath = ThisWorkbook.Path & "\"
Set Fl1 = Sheets("Feuil1")
Set Fl2 = Sheets("Feuil2")
Fl2.Cells.Clear
Fl1.Columns(3).SpecialCells(xlCellTypeConstants, 23).EntireRow.Hidden = True
Fl1.Columns(2).SpecialCells(xlCellTypeVisible).Copy Fl2.Range("A1")
Fl2.Columns(1).SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Fl1.Cells.EntireRow.Hidden = False
For Each Cel In Fl2.Range("A1:A" & Fl2.[A65000].End(xlUp).Row)
    Set c = Fl1.Columns(2).Find(Cel)
    Set PremCel = c.End(xlDown)
    LeNom = Mid(PremCel.Offset(1, 1), InStr(1, PremCel.Offset(1, 1), " ") + 1, _
        Len(PremCel.Offset(1, 1)) - InStr(1, PremCel.Offset(1, 1), " "))
    Set DerCel = PremCel.End(xlDown).Offset(, 2)
    Range(PremCel, DerCel).Name = "base"
    Sheets("Dest").Copy After:=Sheets(Sheets.Count)
    ActiveSheet.Name = LeNom
    Fl1.Range("base").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range( _
        "A1:B1"), Unique:=False
    ActiveSheet.Cells.EntireColumn.AutoFit
    ActiveSheet.Move
    Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs LePath & LeNom & ".xls"
    ActiveWorkbook.Close False
Next Cel
Fl2.Cells.Clear
Fl1.Select
End Sub

le fichier :

https://www.excel-pratique.com/~files/doc2/fichier_source_v1.xls

Bonsoir CousinHub et Dan

merci pour cette macro, elle se rapproche vraiment de ce que je souhaite ; je souhaiterai et je pense que cela est possible de rajouter 3 colonnes entre Nom Prenom et N° CADEAUX.

En B1 Pren Par, en C1 Nom Enf, en D1 Pren Enf et une colonne après N° CADEAUX, en F1 Qte (voir exemple).

Je souhaiterai également concaténer la chaine "292" au numéro de cadeau et sous dans la colonne qte, mettre 1 pour chaque personne.

https://www.excel-pratique.com/~files/doc2/swWxJresultat_final.xls

Merci d'avance de votre aide ; si tu as le temps de commenter la macro, j'essayerai de l'analyser de mon cote.

Bonne soirée

Bonsoir,

Lorsque je disais :

ton exemple n'étant pas représentatif....

Dans ton fichier Source, on ne voit nulle part, le nom, prénom de qui que ce soit....(à part des enfants, et pour en sortir quelque chose, bon courage....)

Ensuite, pour insérer des colonnes, l'enregistreur est ton meilleur ami...

Et enfin, je ne parle pas le SMS, désolé....

Bonjour,

je ne comprends ce que tu veux dire par "Exemple non représentatif" ???

ce que tu as développé est formidable, je souhaiterai, comme je l'ai expliqué dans mon post précédent que cette macro ajoute automatiquement quelques colonnes.

Tiens moi au courant.

Merci encore

Rechercher des sujets similaires à "copier coller fichier macro"