Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1544 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  copier coller plusieurs feuilles dans une feuille

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

copier coller plusieurs feuilles dans une feuille

n°2323669
aculy
Posté le 06-11-2018 à 16:34:05  profilanswer
 

Bonjour,
j'ai un fichier de XXX feuilles (1 par jour ouvré depuis le 1er janvier 2018)  
et j'aurais besoin de copier toutes les datas de toutes les feuilles dans une seule feuille
pour ensuite fait du traitement de données dans cette nouvelle feuille
 
j'avais essayé de faire une macro pour récupérer  sur chaque feuille ce dont j'ai besoin
mais tout au long de l'année on a changé parfois les termes...
 
Merci si QQun a une petite macro pour copier/coller tout en une fois...

mood
Publicité
Posté le 06-11-2018 à 16:34:05  profilanswer
 

n°2323671
aculy
Posté le 06-11-2018 à 16:42:29  profilanswer
 

je corrige en fait mon tableau sur chaque page fait bien la même taille
A1-K19
et je viens de voir aussi que j'ai 5 cellules qui font référence à une autre cellule (B1) ce qui fait que quand je colle à la main mes feuilles les unes apres les autres
je récupère toujours la valeur de la cellule B1... (qui est une date de chaque page....

n°2323674
aculy
Posté le 06-11-2018 à 16:59:56  profilanswer
 

j'aimerais faire ceci pour toutes les feuilles de mon classeur en VBA
'   Range("A1:K19" ).Select
'   Selection.Copy
'   Sheets("Feuil1" ).Select
'   Dim Lig As Long
'       Lig = 1 'première ligne à vérifier
'       Do While Not IsEmpty(Range("A" & Lig))
'       Lig = Lig + 1
'       Loop
'   Range("A" & Lig).Select
'   ActiveSheet.Paste

n°2323680
aculy
Posté le 06-11-2018 à 17:12:50  profilanswer
 

je sais pas si c'est la meilleur méthode et si elle est bonne...
mais...
ceci à l'air d'avoir fonctionner
 
Sub Copie()
Dim k As Integer, i As Integer
k = Sheets.Count
 
For i = 1 To k
    Sheets(i).Activate
   Range("A1:K19" ).Select
   Selection.Copy
   Sheets("Feuil1" ).Select
   Dim Lig As Long
       Lig = 1 'première ligne à vérifier
       Do While Not IsEmpty(Range("A" & Lig))
       Lig = Lig + 1
       Loop
   Range("A" & Lig).Select
   ActiveSheet.Paste
Next i
End Sub

n°2323697
MaybeEijOr​Not
but someone at least
Posté le 06-11-2018 à 17:59:38  profilanswer
 

Bonjour,
 
Déjà il est conseillé de virer tous les .Select qui ne servent à rien en général à part ralentir le script. Ainsi :

Code :
  1. Range("A1:K19" ).Select
  2. Selection.Copy


Peut devenir :

Code :
  1. Range("A1:K19" ).Copy


etc.
 
Pour détecter les fins de colonne il existe .End avec la direction xlDown ou alors utiliser .currentRegion qui permet de connaître une zone rectangulaire dont les bords sont limités par uniquement des cellules vides du côté extérieur.
Du coup ça permet de virer la boucle while.
Si tu as plein de feuilles, tu peux éventuellement utiliser une boucle "for each" en y introduisant un "if" qui permet d'éliminer la première feuille, c'est plus simple à manipuler.


---------------
C'est en écrivant n'importe quoi qu'on devient n'importe qui.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  copier coller plusieurs feuilles dans une feuille

 

Sujets relatifs
[Résolu]Comment changer automatiquement/manuellement de feuilleCopier/coller puis Enregistrement sous excel
copier tuple dans listeMacro copier-coller d'un fichier vers un autre
Calcul points de plusieurs events et membres[Perl] Utiliser LibXML pour concatener plusieurs fichiers XML
Choix de formation entre plusieurs organismesCopier contenue excel vers un autre
Plus de sujets relatifs à : copier coller plusieurs feuilles dans une feuille


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR