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 une ligne d'un tableau à la fin d'un autre tableau d'une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 130
    Points : 85
    Points
    85
    Par défaut copier une ligne d'un tableau à la fin d'un autre tableau d'une autre feuille
    Bonjour,

    Je me suis mis au vba depuis à peu prés 3 semaines et j'ai des probleme sur la programmation d'une macro qui devient vraiment trop balaize pour moi.

    Je vais essayé d'etre le plus clair possible dans l'explication de ma difficulté.

    J'ai deux structures de tableaux identiques sur deux feuilles differentes.

    La premiere colonne de ces tableaux sont les dates d'entrée d'un enregistrement.

    Je voudrais à partir du tableau qui contient toutes les dates afficher dans le second tableaux uniquement les enregistrement du lendemain (date+1 en vba).

    Voici le code que j'ai fait pour le moment ms qui ne marche pas ...
    mon probleme se situe au niveau de la copie (je met en rouge la ou VBA m'hurle dessus).

    Il me reste ensuite je pense a parcourir le deuxieme tableau pour supprimer les vieux enregistrements de façon a avoir toujours que les enregistrements date +1.

    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
    Dim i As Integer, derli As Integer, dercol As Integer, jour As String
    
    jour = Date + 1
    ActiveWorkbook.Worksheets("global").Select
    derli = Columns(1).Find("*", , , , , xlPrevious).Row 
    dercol = Rows(1).Find("*", , , , , xlPrevious).Column
           
           For i = derli To 3 Step -1
    
                   If Cells(i, 1).Value = jour Then
                           Range(Cells(i, 1), Cells(i, dercol)).Copy ThisWorkbook.Sheets("concur jour").Cells(Range("A65536").End(xlUp).Row + 1, 1)          ' ici ça copie à la meme ligne que le tableau d'origien et pas a la premiere ligne vide du nouveau tableau    
    
     End If
           Next
    
    Sheets("Saisie").Select
    Arf encore une chose à laquelle je n'ai pas pensé. ça enregistre les lignes meme si elles y sont deja ça fait des doublons...

    je trouve toujours un truc qui bloque en plus.... :s

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2007
    Messages
    514
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 514
    Points : 824
    Points
    824
    Par défaut
    Bonjour,

    ' ici ça copie à la meme ligne que le tableau d'origien et pas a la premiere ligne vide du nouveau tableau
    Quand tu emploi Range (ou Cells) sans préciser la feuille VBA comprend que tu fais référence à la feuille active.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim j As Long
    j = ThisWorkbook.Sheets("concur jour").Range("A65536").End(xlUp).Row + 1
    Range(Cells(i, 1), Cells(i, dercol)).Copy _
        ThisWorkbook.Sheets("concur jour").Cells(j, 1)
    Cordialement,

    Tirex28/

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2008
    Messages : 130
    Points : 85
    Points
    85
    Par défaut
    Encore une fois merci à toi Tyrex.
    ça semble simple quand je vois ta réponse, j'ai pas encore bien la logique de programmation.

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

Discussions similaires

  1. [WD-2007] macro qui copie une cellule dans une autre cellule d'un autre tableau
    Par jmperieras dans le forum VBA Word
    Réponses: 2
    Dernier message: 17/05/2013, 20h05
  2. Réponses: 2
    Dernier message: 05/12/2011, 19h32
  3. Exécution d'une ligne de code avant la fin d'exécution de la précédente
    Par Patrice Henrio dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 19/07/2010, 15h22
  4. copier une ligne entière d'un tableau vers un autre
    Par ktulu77 dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 15/09/2008, 09h12
  5. Copier une ligne à la fin d'un fichier en respectant les espacements
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 15/06/2007, 09h53

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