Macro copie de données dans un autre format

dudumomo

XLDnaute Occasionnel
Bonjour a tous,

J'ai un fichier que je dois mettre en forme dans un second afin qu'il passe dans une base de données.
En gros je dois copier/coller plusieurs colonnes et les mettre dans d'autres, mais également ajouter des nouvelles colonnes avec des formules.
Idéalement, il me faudrait pouvoir écrire des règles en début de macro (Pour pouvoir adapter plus facilement plus tard)

J'ai concrètement:
- Du simple copier coller mais dans des colonnes différentes,
- Des formules sur les données (Genre trouver le mois, sur une date)
- Des formules rechercheV sur un autre fichier (catégorie des étudiants)

Voici un en fichier joint un exemple (Mais il s'agit de 2 fichiers différent en vrai)

Vous avez des idées sur comment faire?

Merci grandement
 

Pièces jointes

  • Exemple changement format.xlsx
    8.9 KB · Affichages: 19

dudumomo

XLDnaute Occasionnel
Re : Macro copie de données dans un autre format

Bonjour a tous,

Je suis en train d'essayer d'enregistrer une macro a la main directement, mais ça ne semble pas très efficace. (Sélection des plages, etc...)
J’espère que vous avez des meilleurs idées.

Merci!
 

pat01200

XLDnaute Occasionnel
Re : Macro copie de données dans un autre format

Bonjour,
Une 1ère piste:

Sheets("Fichier source").Select
Columns("D:D").Select
Selection.Copy
Sheets("Fichier resultat").Select
Range("C1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Sheets("Fichier source").Select
Columns("A:C").Select
Selection.Copy
Sheets("Fichier resultat").Select
Range("D1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Range("G2").Select
ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-4],[Chemin\Nom du fichier.xls]Nom de l'onglet du fichier!Plage où se trouve les données dans cet onglet,N de la colonne catégorie par rapport à la colonne catégorie,FALSE)),"""",VLOOKUP(RC[-4],[6411101.xls]Feuil1!R2C1:R20C4,3,FALSE))"
Range("G2").Select
Selection.Copy
Range("G3:G aussi loin que tu veux").Select
ActiveSheets.Paste

A toi de préciser les noms manquants...

Bonne journée...
 

pat01200

XLDnaute Occasionnel
Re : Macro copie de données dans un autre format

C'est possible avec ce code :

ActiveCell.FormulaR1C1 = _
"=IF(ISERROR(VLOOKUP(RC[-4],[Chemin\Nom du fichier.xls]Nom de l'onglet du fichier!C[-6]:C[-5],2,FALSE)),"""",VLOOKUP(RC[-4],[Chemin\Nom du fichier.xls]Nom de l'onglet du fichier!C[-6]:C[-5],2,FALSE))"
 

dudumomo

XLDnaute Occasionnel
Re : Macro copie de données dans un autre format

Super! Ca fonctionne.

Tres utile ce "RC" (Bien qu'en dur ca serait plus simple parfois)

Cependant, j'ai utilise la formule IFERROR au lieu de IF + ISERROR. Plus simple de mon cote.

Je pense que c'est tout bon
Merci grandement!
 

Discussions similaires

Réponses
5
Affichages
387
Réponses
7
Affichages
465

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 016
dernier inscrit
Mokson