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 :

copie de donnees sur un autre tableau


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut copie de donnees sur un autre tableau
    Bonjour,

    Je suis débutante en Vba et voilà plusieurs jours que je galère afin de créer une macro vba.
    je vous explique :
    j'ai un tableau A qui doit etre renseigné journalièrement et qui doit me donner 2 résultats.
    Je veux pouvoir conserver ces résultats pour l'envoyer sur un tableau B ( qui lui est mensuel) et reéinitialiser mon tableau A.
    Exemple : lundi (resultats de mon tableau a) ==> tableau b (cellule a1 et a2)
    mardi (nouveaux resultats de mon tableau a) ===> tableau b (cellule b1 et b2) et ainsi de suite.
    J'arrive à recopier les valeurs sur mon tableau b mais je n'arrive pas à recopier sur les lignes suivantes.
    je vous remercie par avance de votre précieuse aide.

  2. #2
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    467
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 467
    Points : 493
    Points
    493
    Par défaut
    La saisie devrait s'enregistrer dans une autre feuille ici (FeuilleMensuel) à la suite des saisies antérieures avec suppression des données de la feuille source.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Copie()
          ActiveSheet.UsedRange.Copy _
            Sheets("FeuilleMensuel").Range("A65536").End(xlUp).Offset(1, 0)
    ActiveSheet.UsedRange.ClearContents
    End Sub
    Bonne soirée
    Abed_H

  3. #3
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    Sans voir un bout de ton code, c'est difficile de répondre avec précision.
    Si ça peut te mettre sur la voie :

    Pour trouver la dernière cellule vide de la colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(Rows.Count, 1).End(xlUp)(2)
    Pour trouver la dernière cellule vide de la ligne 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cells(1, Columns.Count).End(xlToLeft)(2)
    Cells(x, y)
    x = numéro de ligne
    y = numéro de colonne

  4. #4
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    merci déja pour votre aide; mais je ne suis pas encore familiariser au code vba et je n'arrive pas à retranscrire cela.
    je veux par exemple recopier mes résultats des celulles A5 et B5 sur les cellules A10 et B10 puis nouveaux résultats(des cellules A5 et B5) sur cellules A11 et B11 et ainsi de suite.
    En clair, comment doit je retranscrire ça en code Vba car je n'arrive pas encore à vraiment comprendre le fonctionnement.

  5. #5
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 466
    Points : 333
    Points
    333
    Par défaut
    Citation Envoyé par kiriany Voir le message
    Bonjour,

    Je suis débutante en Vba et voilà plusieurs jours que je galère afin de créer une macro vba.
    je vous explique :
    j'ai un tableau A qui doit etre renseigné journalièrement et qui doit me donner 2 résultats.
    Je veux pouvoir conserver ces résultats pour l'envoyer sur un tableau B ( qui lui est mensuel) et reéinitialiser mon tableau A.
    Exemple : lundi (resultats de mon tableau a) ==> tableau b (cellule a1 et a2)
    mardi (nouveaux resultats de mon tableau a) ===> tableau b (cellule b1 et b2) et ainsi de suite.
    J'arrive à recopier les valeurs sur mon tableau b mais je n'arrive pas à recopier sur les lignes suivantes.
    je vous remercie par avance de votre précieuse aide.
    On suppose qu'il existe une feuille "Mensuel" et une feuille "Journalier"

    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
    Sub ReleverMesures()
     
    ' Macro enregistrée le 29/02/2008 par Patrice Henrio
    '
        Dim Source As Range, Col As Long
        'définir la source
        Set Source = ThisWorkbook.Worksheets("Journalier").Range("A1:A2")
        'définir la cible
        Worksheets("Mensuel").Select
        Col = 1
        While Cells(1, Col) <> ""
            Col = Col + 1
        Wend
     
        Source.Copy
        Range(Cells(1, Col)).Select
        ActiveSheet.Paste
        Source.ClearContents
     
    End Sub
    Quelques remarques
    IL serait sans doute judicieux de recopier les valeurs lignes par ligne sen rajoutant la date
    Première colonne : date
    Deuxième colone valeur 1
    Troisième colonne valeur 2

    Cela donne

    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 ReleverMesures()
     
    ' Macro enregistrée le 29/02/2008 par Patrice Henrio
    '
    '
        Dim Source As Range, Lig As Long
        'définir la source
        Set Source = ThisWorkbook.Worksheets("Journalier").Range("A1:A2")
        'définir la cible
        ThisWorkbook.Worksheets("Mensuel").Select
        Lig = 1
        While Cells(Lig, 1) <> ""
            Lig = Lig + 1
        Wend
        Cells(Lig, 1) = Date
        Cells(Lig, 2) = Source.Cells(1, 1)
        Cells(Lig, 3) = Source.Cells(2, 1)
        Source.ClearContents
    End Sub

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Si c'est sur la même feuille, on pourrait par exemple le transcrire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    Dim X%
     
    'on cherche la 1ère cellule vide de la colonne A et on attribue le n° de ligne à X
    X = Cells(Rows.Count, 1).End(xlUp)(2).Row
     
    'on copie la valeur de A5 dans à la ligne X de la colonne A
    Cells(X, 1) = Cells(5, 1)
     
    'on copie la valeur de B5 dans à la ligne X de la colonne B
    Cells(X, 2) = Cells(5, 2)
     
    End Sub

  7. #7
    Membre averti

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    466
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 466
    Points : 333
    Points
    333
    Par défaut
    Citation Envoyé par fring Voir le message
    Si c'est sur la même feuille, on pourrait par exemple le transcrire comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    Dim X%
     
    'on cherche la 1ère cellule vide de la colonne A et on attribue le n° de ligne à X
    X = Cells(Rows.Count, 1).End(xlUp)(2).Row
     
    'on copie la valeur de A5 dans à la ligne X de la colonne A
    Cells(X, 1) = Cells(5, 1)
     
    'on copie la valeur de B5 dans à la ligne X de la colonne B
    Cells(X, 2) = Cells(5, 2)
     
    End Sub
    Merci, je ne connaissais pas cette propriété End.

  8. #8
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    merci grandement pour votre aide, cela fonctionne maintenant.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 16/11/2007, 21h09
  2. Fichiers De Donnees Sur Un Autre Serveur
    Par LDRISS69 dans le forum Administration
    Réponses: 2
    Dernier message: 12/04/2007, 15h29
  3. Récupérer des données sur un autre disque
    Par julien.63 dans le forum Administration système
    Réponses: 15
    Dernier message: 16/10/2006, 15h56
  4. contraint CHECK avec lecture de données sur une autre table ?
    Par mamiberkof dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/05/2006, 09h14

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