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

Excel Discussion :

Comment copier d'une cellule vers une cellule d'une autre feuille en fonction de la date ? [XL-2013]


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Comment copier d'une cellule vers une cellule d'une autre feuille en fonction de la date ?
    Bonjour,
    Tout d'abord je débute sur VBA mais j'ai un projet assez important (pour moi en tout cas!)
    Voila j'ai une feuille avec des valeurs et je souhaite qu'une fois toute les valeurs rentrées :
    - Ces valeurs se mettent dans les cases correspondante dans une feuille archive (qui est un tableau croisé dynamique), donc je pensais commencer par la cellule avec la date qui se mettent dans la première ligne vide puis coller les valeurs sur la même ligne
    - Remettre la feuille de base "vierge", c'est à dire sans valeur mais toujours avec les formules de calcul

    J'ai déjà consulter quelques discussions mais je ne comprends pas toujours ce qu'il se passe et ce n'est pas évident à mettre en relation avec mon projet.
    C'est pour cela que je m'adresse à vous, afin de trouver une solution !

    Si cela peut vous aider, je vous met ma version actuelle du projet
    19-03 V4.xlsm
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par timouth Voir le message
    Tout d'abord je débute sur VBA
    http://bidou.developpez.com/article/VBA/
    je vous met ma version actuelle du projet
    http://www.developpez.net/forums/d84...s-discussions/

    - Ces valeurs se mettent dans les cases correspondante dans une feuille archive (qui est un tableau croisé dynamique), donc je pensais commencer par la cellule avec la date qui se mettent dans la première ligne vide puis coller les valeurs sur la même ligne
    Je ne comprends pas. Normalement, un TCD ne se remplit pas, on se contente de le mettre à jour pour qu'il prenne en compte les nouvelles données.

    - Remettre la feuille de base "vierge", c'est à dire sans valeur mais toujours avec les formules de calcul
    Utiliser la méthode ClearContents de l'objet Range référençant les cellules que tu veux vider.
    https://msdn.microsoft.com/fr-fr/lib.../ff835589.aspx

    J'ai déjà consulter quelques discussions mais je ne comprends pas toujours ce qu'il se passe et ce n'est pas évident à mettre en relation avec mon projet.
    C'est pour ça qu'il faut commencer par acquérir les bases. Voir la première ligne de mon message.

    C'est pour cela que je m'adresse à vous, afin de trouver une solution !
    http://club.developpez.com/regles/#LIV-N
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Excuses et solution
    Bonjour,
    Tout d'abord je voulais présenter mes excuses quand à la mauvaise présentation de mon cas qui ne respectait pas la charte du site.
    Il est vrai que j'ai pas eu le temps de regarder la charte mais je tacherais de le faire.
    Ensuite je voulais vous montrer la solution à mon problème qui pourrait en aider certains !
    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
    Sub Archives()
     
    'On cherche la première ligne vide de la colonne A
    Sheets("Archives").Activate
    Dim Lig As Long
    Lig = 1 'Première ligne à vérifier
    Do While Not IsEmpty(Range("A" & Lig))
        Lig = Lig + 1
    Loop
     
    'On colle dans la feuille archives
    Sheets("Bilan journalier").Activate
    Range("D2").Select
    Selection.Copy
    Sheets("Archives").Activate
    Range("A" & Lig).Select
    Selection.PasteSpecial Paste:=xlPasteValues
     
    Sheets("Bilan journalier").Activate
    Range("I30").Select
    Selection.Copy
    Sheets("Archives").Activate
    Range("B" & Lig).Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Je suis toujours prêt à recevoir des modifications concernant ce code qui pourrait le simplifier.
    Bonne soirée,
    Timouth

  4. #4
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Tout ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'On cherche la première ligne vide de la colonne A
    Sheets("Archives").Activate
    Dim Lig As Long
    Lig = 1 'Première ligne à vérifier
    Do While Not IsEmpty(Range("A" & Lig))
        Lig = Lig + 1
    Loop
    Peut s'écrire plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'On cherche la première ligne vide de la colonne A
    Dim Lig As Long
    Lig = Sheets("Archives").Range("A1").End(xlDown).Row

    Ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    'On colle dans la feuille archives
    Sheets("Bilan journalier").Activate
    Range("D2").Select
    Selection.Copy
    Sheets("Archives").Activate
    Range("A" & Lig).Select
    Selection.PasteSpecial Paste:=xlPasteValues
    Peut s'écrire plus simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'On colle dans la feuille archives
    Sheets("Bilan journalier").Range("D2").Copy
    Sheets("Archives").Range("A" & Lig).PasteSpecial Paste:=xlPasteValues
    Si tu veux copier aussi le format, ça peut encore plus se simplifier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    'On colle dans la feuille archives
    Sheets("Bilan journalier").Range("D2").Copy Sheets("Archives").Range("A" & Lig)
    Même chose pour le bloc de code suivant.

    L'enregistreur de macro a tendance à mettre des Sélection/Select partout, ce qui est une mauvaise habitude.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2016
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2016
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour les astuces !
    Je vais essayer ça tout de suite dans mon projet

    Je vais aussi regarder la formation VBA avant de poster un autre sujet

  6. #6
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par timouth Voir le message
    Je vais aussi regarder la formation VBA avant de poster un autre sujet
    Je viens de tester et je l'ai téléchargé dans problème.
    http://bidou.developpez.com/article/VBA/
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/05/2015, 10h44
  2. [XL-2007] Recopie une valeur vers des cellules vides
    Par bchar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2013, 11h30
  3. Réponses: 5
    Dernier message: 22/07/2011, 17h13
  4. Réponses: 1
    Dernier message: 17/08/2007, 09h09
  5. Réponses: 4
    Dernier message: 02/08/2007, 19h51

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