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 :

Macro excel copie de tableau


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Août 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 1
    Par défaut Macro excel copie de tableau
    Bonjour, je travaille pour une petite boite qui aimerait faire "en gros" une fiche de caisse via excel, ils veulent que j'automatise la creation de tableau ( avec les totaux, et tous les calcul liés a la boutique) quotidiens.
    A chaque jour correspond un tableau qui ressemble a ca :


    Il faudrait donc 30 (ou 31) tableaux de ce genre par feuille et tous les mois on change de feuille et ainsi de suite

    J'aimerais créer une macro sur excel qui permette de faire cela,
    voila mon petit travail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Macro7()
     
        Range("A2:E45").Select
        Selection.Copy
        Dim x As Integer
        x = Format(Now(), "dd")
        Range("A" & (x * 4)).Select
        ActiveSheet.Paste
        Range("A6").Value = Range("A6").Value + 1
     
    End Sub
    Seulement comment vous le verrez le tableau ainsi copié et collé se retrouve au dessus de l'ancien, ce n'est pas logique ...
    Comment faire pour régler l'ordre du plus vieu au plus ancien ?

    merci beaucoup

  2. #2
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Manque d'informations...
    bonsoir,

    bienvenue sur le site.

    Il nous faudrait les références des cellules dans la capture d'écran.

    De plus le code fait dans l'ordre :

    - Selection plage A2:e45 (44 lignes)
    - copie la sélection
    - déclaration de variable
    - récupère le numéro du jour
    - sélectionne la cellue A(n° du jour *4) donc 1->A4 2->A8 3->A12... (bizarre : écrassement car le tableau fait 44 lignes, les valeurs doivent augmenter de 45 lignes à chaque fois et non de "4")
    - colle sur la feuille active (qui n'a pas changer de feuille)
    - Incrémente la valeur (numérique obligatoirement) en A6 (par ex) de la feuille active

    Une première correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Range("A2:E45").Select
        Selection.Copy
        Dim x As Integer
        x = 1 'Format(Now(), "dd")
        Range("A" & (x * 44) + 5).Select
        ActiveSheet.Paste
     
        Range("A6").Value = Range("A6").Value + 1
    LE "5" dans le code est à adapté pour le décalage entre chaque tableau.


    Remarques :
    Je verrais beaucoup mieux une copie de la première feuille nommée "Modèle" (et servant de modèle) avec pour chaque feuille le numéro de semaine comme nom par exemple. Rien que le placement du tableau dans la feuille est plus pratique d'accès.
    De la sort, une même référence de cellules aura le même type de contenu dans toutes les feuilles. Il sera facile de faire des opérations sur ces valeurs dans une feuille "Bilan" avec des fonction du style :

    la somme de toutes les cellules du "C27" pour les 52 semaines

    Voici un code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Exemple()
        'Copie la feuille après la feuille modèle
        Sheets("Modèle").Copy After:=Sheets(1)
        'Incrémente le champ "A6" sur la feuille nouvellement créee
        ActiveSheet.Range("A6") = Sheets("Modèle").Range("A6").Value + 1
        'Renomme la feuille
        ActiveSheet.Name = Format(Now(), "ww", , vbFirstFourDays)
        'Incrèmente le champ "A6" de la feuille "Modèle" (style variable en mémoire)
        Sheets("Modèle").Range("A6").Value = Sheets("Modèle").Range("A6").Value + 1
    End Sub

Discussions similaires

  1. [XL-2007] Macro de copie de tableau en fonction d'une cellule
    Par Omnbre dans le forum Macros et VBA Excel
    Réponses: 27
    Dernier message: 25/06/2015, 16h52
  2. Macro Excel Copié Collé Sélection 2
    Par EnzoExcel dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/12/2014, 14h26
  3. Macro Excel Copié Collé Sélection
    Par EnzoExcel dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/12/2014, 16h22
  4. Bug dans une macro de copie de tableau Excel dans PPT
    Par sachadupuy dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/05/2014, 11h29
  5. [XL-2007] Créer macro excel, alimenter un tableau
    Par toga222 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/11/2011, 15h31

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