IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

coller tout le presse-papier sous Excel 2000 [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut coller tout le presse-papier sous Excel 2000
    Je souhaite recopier des tableaux positionnés sur 2 feuilles du même classeur et les coller dans la feuille 1.

    Pour cela, je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
       ' j'active le prese-papier
       Application.CommandBars("Clipboard").Visible = True
     
       For NUM_FEUILLE = 2 To Worksheets.Count
           Worksheets(NUM_FEUILLE).Select
           Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select
           If NUM_FEUILLE > 2 Then
              Application.CutCopyMode = False
           End If
           Selection.Copy
       Next NUM_FEUILLE
     
       Worksheets(1).Select
       Range("A1").Select
       ActiveSheet.Paste
    Cela ne fonctionne pas, je n'ai que le dernier tableau copié. Que puis-je faire ?

  2. #2
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonsoir juju05 le forum. dans ton cas un truc comme cela c'est peut être suffisant non?? COPY a la suite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub es()
     Sheets(2).Activate: Range([a1], ActiveCell.SpecialCells(xlLastCell)).Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
     Sheets(3).Activate: Range([a1], ActiveCell.SpecialCells(xlLastCell)).Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
    End Sub
    ou si tu tiens a une boucle!! mais pour seulement 2 feuilles ??

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub Macro2()
       Dim ws As Worksheet
      For Each ws In Sheets(Array("feuil2", "feuil3"))
    ws.Activate: Range([a1], ActiveCell.SpecialCells(xlLastCell)).Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
       Next ws
    End Sub

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut
    J'ai simplifié ce que je voulai faire pour avoir une réponse sur le coller-tout.

    En fait, j'ai un classeur avec X feuilles qui comprennent chacune 1 tableau de format différent. Je veux:

    - récupérer l'ensemble de mes tableaux de mes différentes feuilles,

    - coller l'ensemble de cette agrégation dans un autre classeur.

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re, le principe avec explications a adapter!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub es()
    Dim dep, Dest As Workbook, Ws As Worksheet
       Set dep = Workbooks("classeur2") 'feuille classeur a copier
       Set Dest = Workbooks("classeur1") 'classeur destination
       Application.ScreenUpdating = False 'pas de mise a jour ecran plus rapide execution
       For Each Ws In dep.Worksheets 'boucle sur les feuilles du classeur 2
       If Ws.Name <> "Feuil4" And Ws.Name <> "Feuil5" Then 'sauf feuille 4 & 5
     dep.Sheets(Ws.Name).Activate 'active feuilles
     Range([a1], ActiveCell.SpecialCells(xlLastCell)).Copy Destination:=Dest.Sheets(1).Range("a65536").End(xlUp)(2)
            End If: Next Ws
        Set dep = Nothing: Set Dest = Nothing
        Windows("classeur1").Activate
     End Sub

  5. #5
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Novembre 2008
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2008
    Messages : 618
    Par défaut
    Je suis désolé mais cela ne fonctionne pas. De plus je ne souhaiterai coller que les valeurs.

    Je joins le fichier à remplir "Intégration heures boost.xls" et le fichier de départ "Matrice Louise.xls".

    La macro s'active en cliquant sur le bouton Intégration.

    Merci d'avance.
    Fichiers attachés Fichiers attachés

  6. #6
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re, en reprenant le debut de ton code je suppose que le code pour ouvrir le fichier Matrice Louise.xls fonctionne
    cette ligne en debut de code sert a rien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CutCopyMode = True
    'debut de ton code variables puis chemin ect..
    j'ai ajouter 2 variables
    supprimer les lignes dont le montant est égal à 0
    je pense que cela correspond a la colonne D nb...heures

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Dim t As Variant
            Dim i As Long
            Set dep = Workbooks("Matrice Louise.xls")
            Set Dest = Workbooks("Intégration heures boost.xls")
           Application.ScreenUpdating = False
            For Each Ws In dep.Worksheets
           If Ws.Name <> "Fctnmt" Then
                      dep.Sheets(Ws.Name).Activate
                If Ws.Name = "Lavage Caisses" Then DATE_TRAITEE = CDate(Range("A2").Value)
                t = Range("A1", ActiveCell.SpecialCells(xlLastCell))
     Dest.Sheets(1).Range("A" & Dest.Sheets(1).Cells.Find("*", , , , , xlPrevious).Row + 1).Resize(UBound(t, 1), UBound(t, 2)) = t
           End If
         Next Ws
              Set dep = Nothing: Set Dest = Nothing
       Windows("Intégration heures boost.xls").Activate
    For i = Range("b65536").End(xlUp).Row To 1 Step -1
       If Range("A" & i).Value = "" Then Range("A" & i).Value = DATE_TRAITEE
       If Range("D" & i).Value = 0 Or (Range("A" & i).Value = "Date" And Range("D" & i).Value <> "Heures") Then Rows(i).Delete
           Next i
    MsgBox Timer - Heure

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Coller les données du presse papiers dans Excel
    Par Souri84 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 19/01/2010, 10h48
  2. Réponses: 1
    Dernier message: 26/03/2007, 10h47
  3. Réponses: 12
    Dernier message: 10/06/2006, 19h07
  4. VBProjects sous Excel 2000
    Par Igloobel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/12/2005, 12h08
  5. protection dossier sous excel 2000
    Par grandnello dans le forum Excel
    Réponses: 1
    Dernier message: 03/08/2005, 21h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo