FORUM Tom's Hardware » Programmation » VB / VBA / VBS » Copier des feuilles dans une meme feuille et à la suite
 

Copier des feuilles dans une meme feuille et à la suite

Il y a 283 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici
Ajouter une réponse



 Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Copier des feuilles dans une meme feuille et à la suite
 
Plus d'informations

Bonjour à tous,
je suis novice sous VBA et un peu d'aide serai la bienvenu
je souhaiterais en clikant sur des checkboxs copier des feuillles et ensuites les coller les unes à la suite des autres sur une seule feuille
le programme que j'ai fait est le suivant :  
 

Code :
  1. Private Sub CheckBox1_Click()
  2. 'Opérations A
  3. Dim classeur_actif As Workbook
  4. Dim sheet_active As Worksheet
  5. Set classeur_actif = ThisWorkbook
  6. Set sheet_active = classeur_actif.Worksheets("feuil4" ) (FEUILLE 4 DE DESTINATION)
  7. For i = 1 To Worksheets.Count
  8. Worksheets("A" ).Range("A1" ).CurrentRegion.Copy Destination:=sheet_active.Cells(Rows.Count, 1).End(xlUp).Offset(6, 0)
  9. Next i
  10. End Sub


 
Mon programme me fait le copier coller des feuilles o bonne endroit  
seulement il les copies o moin 5 fois chacune :??:  
je ne trouve pas la solution donc si qq'un a une idée il est le bienvenu
merci d'avance


Message édité par BOBIE le 06-07-2007 à 14:43:36

zeb
Profil : Modérateur libre
Plus d'informations

Oh le joli code. :) (<-- indépendament de sa présentation ;) )
Ligne 10, tu parcours les n feuilles du classeur, dont la dernière !
Ligne 11, tu considères Worksheets("A" ) ?
N'est-ce pas Worksheets(i) que tu voulais mettre ?

 

Remarques :
Ligne 7, tu exagères. Mais c'est dans l'esprit. (Tu ne le remets pas lignes 10 et 11, c'est donc qu'on ne travaille que dans un seul Classeur)
Ligne 11, CurrentRegion. Très élégant !
Ligne 10, pour parcourir une collection, Tu peux aussi utiliser For Each.

 

Exemples :

Code :
  1. Set ws_dest = Worksheets("feuil4" )
  2. Set i As Integer
  3. For i = 1 To Worksheets.Count - 1
  4.     Worksheets(i).Range("A1" ).CurrentRegion.Copy ws_dest.Cells(Rows.Count, 1).End(xlUp).Offset(6, 0)
  5. Next
Code :
  1. Set ws_dest = Worksheets("feuil4" )
  2. Set ws As WorkSheet
  3. For Each ws In WorkSheets
  4.     If Not ws Is ws_dest Then
  5.         ws.Range("A1" ).CurrentRegion.Copy ws_dest.Cells(Rows.Count, 1).End(xlUp).Offset(6, 0)
  6.     End If
  7. Next


Le mot Destination étant facultatif, je n'ai enlevé. Par ailleurs, dans mes exemples, je le mets toujours pour fixer les idées. Mais j'ai l'impression que ce n'est pas indispendable pour toi :)


Message édité par zeb le 06-07-2007 à 15:57:22

---------------
Règlement du forum / Règlement de Programmation / Règlement du Monde de Linux euh, n'y en a pas...
Plus d'informations

merci pour ton aide précieuse et bon week end


Aller à :
Ajouter une réponse
  FORUM Tom's Hardware » Programmation » VB / VBA / VBS » Copier des feuilles dans une meme feuille et à la suite
 

Annonces Google
Publicité