[Résolu] Fusionner plusieurs feuilles en une seule

Fusionner plusieurs feuilles en une seule [Résolu] - VB/VBA/VBS - Programmation

Marsh Posté le 06-07-2006 à 14:07:35    

Salut les jeunes j'aurais besoin de vos lumières ! ( je suis une vraie tanche en programmation  :sweat: )
 
Je vous explique mon problème :  
 
Dans un même classeur, je possède trois feuilles remplies. J'aimerai fusionner toutes les données contenues dans les trois feuilles en une seule.  
Voila je pense que ca doit pas etre bien difficile mais de l'aide serait la bienvenue...
 
Merci d'avance  :jap:


Message édité par coxi9 le 11-07-2006 à 11:29:48
Reply

Marsh Posté le 06-07-2006 à 14:07:35   

Reply

Marsh Posté le 06-07-2006 à 14:17:51    

remplies jusqu'où? (entends par là le numéro de ligne)

Reply

Marsh Posté le 06-07-2006 à 14:18:58    


tu cherches à fusionner les feuilles ou tout simplement à récupérer les valeurs de tes feuilles 2 et 3 pour les mettre sur la feuille 1 ??

Reply

Marsh Posté le 06-07-2006 à 15:04:49    

Citation :

tu cherches à fusionner les feuilles ou tout simplement à récupérer les valeurs de tes feuilles 2 et 3 pour les mettre sur la feuille 1 ??


 
J'aurais préféré la fusion des feuilles mais si c'est trop compliqué la copie de toutes les valeurs dans la feuille 1 me convient aussi...
 

Citation :

remplies jusqu'où? (entends par là le numéro de ligne)


 
Chaque feuille comprend entre 50 et 100 lignes. Les valeurs de la feuille 2 doivent donc etre copiée après les 100 premiers lignes de la feuille 1. Un petit schéma si je me fais mal comprendre :
 
*feuille 1*
 
ligne 1        
ligne 2        
ligne 3
...
ligne 100    
 
données copiées de la feuille 2
 
ligne 200
 
données copiées de la feuille 3
 
Voila j'espère avoir été assez clair  :sweat:  
 
Merci en tout cas  :hello:

Reply

Marsh Posté le 06-07-2006 à 15:09:09    

tu fais  
range("feuil2!A1:A100" ).select que tu copy et paste dans range("feuil1!A101:A200" ) truc comme ca :p
(comment ca je donne que la moitié des infos ?  :pt1cable:  

Reply

Marsh Posté le 10-07-2006 à 10:49:16    

C'est encore moi. Tout d'abord merci pour votre aide j'ai réussit a copier le contenu de mes 3 feuilles dans une seule, seulement j'aimerai maintenant automatiser une procédure pour que la copie se fasse quelque soit le nombre de feuille. Voici ce que j'ai fait pour la copie des trois feuilles :
 

Citation :

Worksheets("Feuil1 (2)" ).Range("A101: O200" ).Value = Worksheets("Feuil1 (3)" ).Range("A1: O100" ).Value
 
Worksheets("Feuil1 (2)" ).Range("A201: O300" ).Value = Worksheets("Feuil1 (4)" ).Range("A1: O100" ).Value


 
En gros le contenu ( de la plage A1: O100 ) de la feuil1 (3)  est copié dans la feuil1 (2) 100 lignes plus bas. Idem pour la feuill1 (4).
 
J'ai donc pensé à faire une boucle histoire de faire un traitement automatique. Voila a quoi elle ressemble :
 

Citation :

For i = 3 To NbreFeuille
 
   compt1 = A101
   compt2 = O200
 
   Worksheets("Feuil1 (2)" ).Range("compt1:compt2" ).Value = Worksheets("Feuil1 (i)" ).Range("A1: O100" ).Value
 
   compt1 = compt1 + 100
   compt2 = compt2 + 100
 
   Next i
 


 
Donc j'ai plusieurs questions :
 
1° Comment connaitre le nombre de feuille d'un classeur ? J'en ai besoin ici "For i = 3 To NbreFeuille"
 
2° Le coup du "Range("compt1:compt2" ).Value " ne marche pas ( tant pis j'aurais tenté  :pfff: ). Des suggestions ?
 
3° J'ai enfin une incompatibilité de type lors de l'incrémentation des compteurs ici "compt1 = compt1 + 100". ( J'ai défini les 2 compteurs en String ) Je dois les définir comment ?
 
4° Avec ou sans patates ?
 
Merci d'avance...
 

Reply

Marsh Posté le 10-07-2006 à 10:53:03    

pour le nb de feuille : Worksheets.Count
Attention il y a aussi celle dans laquelle tu copies.

Reply

Marsh Posté le 10-07-2006 à 10:57:55    

For i=2 to worksheets.count
 worksheets("Feuil1" ).range(ZoneDeb & ":" & ZoneFin).value=Worksheets(i).range(ZoneDebi & ":" & ZoneFini).value
next
 
avec ZoneDeb = "A1" (par exemple) et ZoneFin à mettre à jour à chaque passage dans la boucle.
Et ZoneDebi et ZoneFini qui sont les zones à prendre en compte dans chaque feuille.


Message édité par Paul Hood le 10-07-2006 à 11:15:12
Reply

Marsh Posté le 10-07-2006 à 11:13:19    

je te propose ceci
 
For i=2 to worksheets.count  
 worksheets("Feuil1" ).range("A" & (100*i-99) & ":O" & 100*i).value=Worksheets(i).range("A1:O100" ).value  
next  
 
4° sans patates ^^

Reply

Marsh Posté le 10-07-2006 à 15:31:56    

Merci pour votre aide ca marche !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed