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

Macro copier coller avec ligne vide

  • Initiateur de la discussion Initiateur de la discussion sergiuspollux
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

sergiuspollux

Guest
Bonjour,

Après pas mal de temps a chercher, je manque de logique dans les syntaxes,je demande de l'aide

Dans le but d'historiser, j'ai besoin de copier le contenu d'une feuille
c'est a dire les trois onglets de la feuille capacity dans la feuille historisation_testrecette dans les 3onglets


avec tous mes remerciements

Serge
 

Pièces jointes

Re : Macro copier coller avec ligne vide

Bonjour Serge ,

Pourtant plein d'exemples sur le Forum,

Bon , la premiere chose , si Historisation est ton classeur de synthese pourquoi ne pas mettre la macro dans celui-ci .

Attention aux termes employés:

un classeur est un fichier Excel en principe Xls, mais depuis 2007 xlsx ou xlsm

une Feuille de calcul ou onglet est un de ces composants .

De ce que j'ai vu tu souhaites faire passer du classeur Capacity ces 3 onglets vers le classeur Historisation .

et c'est tout , ou ensuite tu viendras compléter ces onglets avec de nouvelles valeurs ?
 
Re : Macro copier coller avec ligne vide

Bonjour,

le fichier capacity est remis tous les jours a zero et réalimenté avec la date du jour.
je comptais mettre la macro dans le classeur capacity, car le fichier capacity centralise plusieur actions.

j'ai tellement essayé de combines que je m'y perds

===========================================

Sheets("aix_1m").Range("a2:j100").Copy (comment selectionner a partir de la ligne 2 jusqu' a la fin) ?
'
Workbooks(historisation_testrecette).Activate
Sheets("histo_aix_1m").Activate
Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste
'
================================

avec mes remerciements
Serge
 
Re : Macro copier coller avec ligne vide

Bonjour Serge ,

Alors voici un code à placer dans le classeur capacity
le classeur synthese est nommé Historique.xls, a modifier dans le code si nécessaire .
ils doivent être stockés dans le même répertoire.

Si l'onglet n'est pas trouvé , il est intégralement copié , sinon l'on copie les lignes à la suite de ceux existantes

Code:
Sub Historique()
Dim Onglet As Worksheet
Dim LigneFin As Long, LigneCible As Long
Dim Bidon As Boolean
Dim Historique As String, Chemin As String

Chemin = ThisWorkbook.Path
Historique = "Historique.xls"

If Dir(Chemin & "\" & Historique) = "" Then MsgBox " Le fichier Historique n'existe pas ou n'est pas à l'emplacement attendu": Exit Sub
Workbooks.Open Chemin & "\" & Historique

With Workbooks(Historique)
'Copie des onglets
 'boucle sur l'ensemble des onglets de ce classeur
  For Each Onglet In ThisWorkbook.Worksheets

  'Test archaïque de l'existance de l'onglet visé
   On Error Resume Next
    Bidon = .Sheets(Onglet.Name).Visible
    'Historique = Err.Number
    If Err.Number = 9 Then
     'Sheets("vm_1m").Copy After:=Workbooks("historisation.xls").Sheets(2)
     Onglet.Copy After:=Workbooks(Historique).Sheets(Workbooks(Historique).Worksheets.Count)
      Else
    'Calcul de la derniere ligne occupée de la colonne A
     LigneFin = Onglet.Range("A" & Rows.Count).End(xlUp).Row
     LigneCible = Sheets(Onglet.Name).Range("A" & Rows.Count).End(xlUp).Row + 1
     .Sheets(Onglet.Name).Range("A" & LigneCible & ":H" & LigneCible + LigneFin - 2) = Onglet.Range("A2:H" & LigneFin).Value
    End If
    On Error GoTo 0
Next Onglet
End With
End Sub
 
Re : Macro copier coller avec ligne vide

Bonjour,

j'ai testé votre code qui fonctionne, il arrive qu'il y est des décallages dans les colonnes, il se trouve qu'il prend des onglets que je n'ai pas besoin(ce qui peut-etre pertube la remontée de certains élements) , y a t-il moyen de lui imposer les onglets que l'on veut historiser.

je vous remercie, car c'est vraiment top.

Cordialement

Serge.
 
Re : Macro copier coller avec ligne vide

re Serge,

Ben oui , c'est possible ex : les feuilles "Feuil3,Feuil5", sont à exclure du traitement

Code:
Dim Onglet As Worksheet
 Dim LigneFin As Long, LigneCible As Long
 Dim Bidon As Boolean
 Dim Historique As String, Chemin As String
'boucle sur l'ensemble des onglets de ce classeur
  For Each Onglet In ThisWorkbook.Worksheets
   If InStr(1, "Feuil3,Feuil5", Onglet.Name) = 0 Then
    
 ' traitement 

   End If
 Next Onglet
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
592
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…