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

rapatrier deux colonnes d'une feuille vers une autre

B

Bigdeal

Guest
Bonjour,
n'ayant obtenu aucune réponse d'un autre post que j'ai déposé il y a quelque temps, je vais tenter de décomposer ma demande en plusieurs étapes, de ce fait je pourrais peut-être arriver à finaliser une macro.

je voudrais créer une macro que je puisse lancer à partir d'un fichier xls :

1- la macro doit créer une nouvelle feuille nommée "Cumul"

2- la macro doit repérer dans toutes les feuilles présentes du fichier deux colonnes dont les noms sont : "identifiant" et "Montant".

3- la macro doit recopier les deux colonnes qui sont présentes sur chacune des feuilles (et dont les noms ne sont jamais les mêmes) et les coller par ajout dans la nouvelle feuille nommée "Cumul"

4- le collage si possible doit se faire en type "coller par ajout" comme dans access.


si j'obtiens quelque chose pour ça ; ce serat déjà merveilleux pour moi
 
R

Rai

Guest
Bonjour,

Alors, tentons de t'avancer un peu dans tes Questions.

1. Pour créer une feuille "Cumul" en dernière position du classeur
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Cumul"

2. tu veux repérer des colonnes dont la première ligne comporte Identifiant et Montant (pour chaque feuille sauf Cumul).
For i = 1 To Sheets.Count - 1
With Sheets(i)
ColID = .Range("1:1").Find(what:="Identifiant").Column
ColMT = .Range("1:1").Find(what:="Montant").Column
End With
Next i


3. tu veux ajouter les données trouvées dans la feuille Cumul (idem point 4.)


Ce qui donne au complet :
Sub BigDeal()
Sheets.Add After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Cumul"
DerLig = 2
For i = 1 To Sheets.Count - 1
With Sheets(i)
ColID = .Range("1:1").Find(what:="Identifiant").Column
ColMT = .Range("1:1").Find(what:="Montant").Column
DerligID = .Cells(65536, ColID).End(xlUp).Row
.Range(.Cells(2, ColID), .Cells(DerligID, ColID)).Copy Destination:=Sheets("Cumul").Cells(DerLig, 1)
.Range(.Cells(2, ColMT), .Cells(DerligID, ColMT)).Copy Destination:=Sheets("Cumul").Cells(DerLig, 2)
End With
DerLig = DerLig + DerligID - 1
Next i
End Sub


ATTENTION, Je suis parti du principe :
1. que la feuille "Cumul" n'existe pas
2. qu'il y a des colonnes Identifiant et Montant partout
3. que ces colonnes comportent chacune au moins une valeur.


Bonne continuation.

Rai
 
B

Bigdeal

Guest
Je m'empresse de répondre, ne serait-ce que pour dire un grand MERCI.

Je dois m'absenter, quel dommage que je ne puisse pas mettre à profit cette méthode.
au premier abord, ça à l'air de marcher.

Je confirme que les 3 contraintes que tu t'es fixées pour pour écrire sont les bonnes. Donc je vais mettre à profit ce code.
Je le mettrai à disposition ici même pour ceux qui sont intéressés.

Hélas je suis absent lundi et mardi mais dès mercredi je serais fixé.

A nouveau merci et à mercredi.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…