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 :

copier/coller tableaux excel archivage


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Points : 12
    Points
    12
    Par défaut copier/coller tableaux excel archivage
    Bonjour,

    Je désire :

    1- copier une plage de données située dans une feuille ("sheet1") et dont les valeurs sont actualisées quotidiennement (par formule)

    2- coller certaines de ces données selon un critère de selection (seulement les lignes contenant des informations datées d'aujourd'hui par ex) et ce, dans une deuxième feuille ("sheet2").

    Rq, j'aimerais que le collage commence à partir de la première ligne vide de la fueille "sheet2" puisque cette fueille contient une archive historique actualisée quotidiennement et contenant les données du jour en question.


    Merci d'avance
    marcel

  2. #2
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    Désoler si tu n'as pas de réponse mais par rapport à ton texte on a l'impression que tu nous donne un boulot à faire et non une aide. Peux tu mieux expliquer ton probleme et si tu ne connait pas VBA il y a plein de tutoriel dans se site

    http://vb.developpez.com/faqvba/

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Points : 12
    Points
    12
    Par défaut
    merci de ta réponse.

    en fait je dispose d'un code qui copie ma plage de donnée de 4 colonnes et n ligne, puis la colle dans une deuxième feuille.

    mon critère de selection = Masculin "M" qui se trouve à la quatrième colonne, le code est le suivant

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Sub CreationOnglets()
     
    Dim Rw As Range
    Dim Ligne As Long
     
    Sheets("Sheet1").Select
    ActiveCell.SpecialCells(xlLastCell).Select
    Range(Selection, Cells(1)).Select
     
    For Each Rw In Selection.Rows
     
    Ligne = Rw.Row
     
    If Rw.Cells(1, 4).Value = "M" Then
    Rw.Copy Destination:=Worksheets("Sheet2").Cells(Ligne, 1).EntireRow
    End If
     
    Next Rw
     
    'supprimer les lignes destination vides
    Sheets("Sheet2").Activate
     
    With ActiveSheet.UsedRange
    derLi = .Row + .Rows.Count - 1
    End With
    Application.ScreenUpdating = False
    For r = derLi To 1 Step -1
    If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
    Next r
    mon souci est que ce code commence à coller à partie de la première ligne de la feuille "sheet2", tandis que j'aimerais décaler le collage de quelques lignes en bas et coller à partir de la première ligne non vide de cette feuille (comme j'archive les données précédentes à fur et à mesure).

    Merci de votre aide

  4. #4
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    Je te dirais bien de mettre cela mais ton code est pas logique par rapport à ce que tu demandes car tu colles les lignes où tu veux mais ensuite tu supprimes les lignes vides donc ça revient forcement au début: essai cela

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    Sub CreationOnglets()
     
    Dim Rw As Range
    Dim Ligne As Long
     
    Sheets("Sheet1").Select
    ActiveCell.SpecialCells(xlLastCell).Select
    Range(Selection, Cells(1)).Select
     
    For Each Rw In Selection.Rows
     
    Ligne = Rw.Row + 5
     
    If Rw.Cells(1, 4).Value = "M" Then
    Rw.Copy Destination:=Worksheets("Sheet2").Cells(Ligne, 1).EntireRow
    End If
     
    Next Rw
     
    'supprimer les lignes destination vides
    Sheets("Sheet2").Activate
     
    With ActiveSheet.UsedRange
    derLi = .Row + .Rows.Count - 1
    End With
    Application.ScreenUpdating = False
    'For r = derLi To 1 Step -1
    'If Application.CountA(Rows(r)) = 0 Then
    ' Rows(r).Delete
    ' End If
     
    'Next r
     
    End Sub
    Et dis nous si ça te convient

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Points : 12
    Points
    12
    Par défaut
    merci,

    mais je sais toujours pas comment commencer le collage à partir de la première ligne non vide de ma base de donnée. (données classées en ordre chronologique croissant puisque actulisées quotidiennement)

  6. #6
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    code qui permet de trouvé la dernière ligne utilisé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    lastRow = Sheets("Sheet2").UsedRange.Rows.Count ' derniere ligne utilisé

  7. #7
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    j'ai trouvé un code qui me répond exactement à mon besoin spécifique d'archivage entassé d'un tableau excel :

    ma fueille d'archivage est nommée : "Archivage"
    ma plage à archiver se nomme "a1:f16" de la feuille "sheet1"

    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
    Sub automatic_archivage()
     
    NomFeuille = ActiveSheet.Name
     
        Application.ScreenUpdating = False
        Sheets("sheet1").Range("a1:f16").Copy
     
        With Sheets("Archivage")
            .Activate
            LigDispo = .Range(Cells(65536, 1), Cells(65536, 1)).End(xlUp).Row + 2
            .Range(Cells(LigDispo, 1), Cells(LigDispo, 1)).Select
        End With
     
        ActiveSheet.PasteSpecial
     
        Sheets(NomFeuille).Activate
        Application.ScreenUpdating = True
     
    End Sub
    mon problème maintenant est de coller en veleur et pas en formule
    merci infiniment de compléter ce code en intégrant le collage special

    j'ai trouvé la procédure pour le collage special :

    le complément de code est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sheets("Archivage").PasteSpecial
        Sheets(Archivage).Select
     
    'collage special intégral
     
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

  8. #8
    Membre à l'essai
    Inscrit en
    Novembre 2007
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 33
    Points : 12
    Points
    12
    Par défaut collage conditionnel ?
    Bonsoir,

    j'aimerais cette fois applique la même chose : collage d'un tableau en valeur et archivé quotidiennement d'une manière entassée

    Mais je ne désire copier que les lignes dont une cellule contient une certaines condition (ne copier que les donnes dont la date est le 15/11/07 par exemple)

    Il s'agit d'un collage updaté d'une plage mais conditionnel cette fois

    Vous seriez aimables de corriger mon code précédent afin d'intégrer cette condition de selection sur la colonne c qui contient les dates

  9. #9
    Membre habitué Avatar de scully2501
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    184
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 184
    Points : 148
    Points
    148
    Par défaut
    Nous sommes pas la pour corriger ton code ni faire ton boulot, nous sommes la pour t'aider donc attention au mot que tu emploi si tu veux une réponse.

Discussions similaires

  1. Copier/Coller entre Excel et un dataGridView
    Par vladvad dans le forum Windows Forms
    Réponses: 8
    Dernier message: 29/11/2017, 01h34
  2. copier/coller feuille excel
    Par theshark85 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/09/2007, 20h22
  3. Copier - Coller de Excel vers un datagridview
    Par sylchar dans le forum Général Dotnet
    Réponses: 2
    Dernier message: 28/03/2007, 11h26
  4. VBA-E: Pb copier-coller entre Excel et .csv
    Par tiger118 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 14/06/2006, 12h08
  5. [POI]copier/coller fichier Excel
    Par yas2006 dans le forum Documents
    Réponses: 3
    Dernier message: 23/03/2006, 21h16

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