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 + Archivage


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut Macro + Archivage
    Bonjour,

    Pour finaliser mon fichier, j’ai besoin d’un coup de main.
    Dans la feuille « En cours » les colonnes vont de A à AO.

    Dans ma macro actuelle, comme je l’ai indiqué dans le module 3, elle copie de A1 à J1 de la feuille « En cours » et colle les contenus dans la feuille « Terminés » à partir de la cellule A2.

    Ce que je voudrais,
    Lorsque je finis de remplir les cellules qui m’intéresse, je sélectionne une cellule de la ligne qui m’intéresse par exemple A2 et je voudrais en cliquant sur le bouton « transférer dans Terminés », que la macro transfère uniquement le contenu des cellules qui m’intéresse dans la feuille « Terminer » par exemple le contenu de la colonne A, C et D.

    Pour info :
    A l’ouverture du fichier, si la cellule G1 est rouge, cela signifie que les macros sont désactivées. Si elle est verte, les macros sont actives.

    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
    Sub ARCHIVER()
     
     'ActiveCell.Offset(0, -9).Range("A1").Select      ' décale vers la 1ère colonne de la ligne
        ActiveCell.Range("A1:j1").Select
     
      Selection.Copy                                     ' Copie la ligne sélectionnée
     
     
     
        Sheets("Terminés").Select                      'Sélectionne la feuille de destination, cellule A2000
        Range("A2000").Select                ' b remonte vers la 1ère ligne remplie
        Selection.End(xlUp).Select
        ActiveCell.Offset(1, 0).Range("A2").Select      'Décale de 1 ligne vers le bas et colle les données
        ActiveSheet.Paste                               'Reviens vers la feuille de départ
     
     
    End Sub
    Merci pour votre aide.

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    oulah!!! je remplace tout simplement tout ton code par ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:j1").Copy Destination:=Range("A2000").End(xlUp).Offset(1, 0)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Juillet 2016
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2016
    Messages : 11
    Points : 7
    Points
    7
    Par défaut
    Bonjour Patricktoulon,

    Ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A1:j1").Copy Destination:=Range("A2000").End(xlUp).Offset(1, 0)
    ne m'a pas apporté de solution. j'ai trouvé un code encore meilleur. mais je n'ai toujours pas résolu mon problème.

    je souhaite faire le choix d'un échantillon pré-définie, que l'on peut modifier à souhait.
    si on choisit de copier le contenu des cellules A, C et D dans un début est très bien, on pourra toujours en ajouter ou retrancher en cas d’évolution du fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
       Sub archiver()
        Dim O As Worksheet 'déclaration pour appeler une feuille avec juste une lettre
        Dim S As Worksheet 'pareil
        Dim Dl& 'variable qui va permettre de trouver la dernière ligne remplie
        On Error Resume Next
        Set O = Worksheets("en cours") ' la feuille "en cours" s’appellera o plus facile et rapide a écrire
        Set S = Worksheets("terminés") ' pareil qu'au dessus
        Dl = S.Range("A" & Rows.Count).End(xlUp).Row ' cherche la dernière ligne remplie de la feuille terminés
        O.Range(ActiveCell, ActiveCell.Offset(0, 10)).Copy S.Range("A" & Dl + 1) 'Dl+1 car tu veux écrire sur la ligne d'en dessous
        End Sub

  4. #4
    Membre confirmé
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Points : 584
    Points
    584
    Par défaut
    Essaye ceci (par contre ça ne copie que la première ligne)

    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
    Sub archiver()
        Dim O As Worksheet
        Dim S As Worksheet
     
        On Error Resume Next
        Set O = Worksheets("en cours")
        Set S = Worksheets("terminés")
     
        Dl = S.Range("A" & Rows.Count).End(xlUp).Row
     
    Col1 = InputBox("Veuillez entrer la première colonne de la plage à copier (juste la lettre !!)")
    Col2 = InputBox("Veuillez entrer la dernière colonne de la plage à copier (juste la lettre !!)")
     
    S.Range(Col1 & Dl + 1 & ":" & Col2 & Dl + 1).Value = O.Range(Col1 & "1:" & Col2 & "1")
        End Sub
    C'est en creusant qu'on fait des trous

Discussions similaires

  1. Macro pour archivage
    Par Lolita01 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/02/2016, 14h29
  2. [XL-2010] Créer une mini base de données d'archivage ? Recherche macro
    Par ptit_homm dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/09/2013, 16h22
  3. [XL-2010] macro Archivage Feuille active
    Par duplaly dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/03/2011, 18h08
  4. Afficher année/semestre lors d'une macro d'archivage
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/05/2008, 10h07
  5. Créer une macro archivage
    Par Anaelody dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/07/2007, 16h14

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