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 :

Archivage, Tri, Classement de donnees


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 12
    Par défaut Archivage, Tri, Classement de donnees
    Bonjour tout le monde,

    Une nouvelle fois, je vais avoir besoin de votre aide.
    J'ai un fichier informatique excel, qui doit se comporter comme access (pas f acile mais ce sont les contraintes de mon travail).
    A Partir de la premiere feuille, il faut que jeffectue une macro qui recopie une dizaine de lignes dans une autre feuilles excel. Jusque la, pas de soucis, mais le probleme, c est que je dois effectuer plusieurs enregistrements sans ecraser les precedents.

    Donc comment depuis une premiere feuille excel saisir les donnees comprises entre B2 a G27 (25 lignes par 6 colonnes) les recopier dans une seconde feuille en mettant ces informations a la suite des precedentes.

    Je sais le faire mais juste pour une seule ligne de plusieurs colonnes.


    Merci davance

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 93
    Par défaut
    Bonjour,

    ceci devrait faire l'affaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
     
    Sub copie()
     
     
        Range("B2:G27").Copy Destination:=Sheets(2).Range("A65536").End(xlUp).Offset(1, 0)
     
     
    End Sub

    Dans ce code la copie se fait dans la page 2 et dans la colonne A. A adapter pour tes besoins.

    @+

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut à tous

    da991319 : presque bon . M'a déjà coûté des heures de recherche : Copy n'admet pas le offset
    Donc ton instruction plante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    with Sheets(2)
    Range("B2:G27").Copy .Range("A" & .[A65536].End(xlUp).row+1)
    end with
    Marche mieux
    A+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 93
    Par défaut
    da991319 : presque bon . M'a déjà coûté des heures de recherche : Copy n'admet pas le offset
    Donc ton instruction plante
    Salut Gorfael,

    C'est bizarre mais j'ai verifie ma formule magique et elle fonctionne tres bien ....sous excel 2000 en tout cas. Aucun plantage a l'horizon

    mais ceci dit ta formule convient tout a fait aussi

    @+

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    Citation Envoyé par gorfael
    M'a déjà coûté des heures de recherche
    hé ben, je croyais etre le seul a défendre les causes perdues mais tu dois etre pas mal. chez moi le code de da991319 marche très bien. sauf que ...
    ton code a exactement le meme defaut que celui de gorfael
    faites un essai
    je renplis les case a1 a2 et g10 avec n'importenawak
    je fais mon essai sur le range a1g10 pour simplifification
    je change la couleur de la selection entre deux essais de la macro
    et j'obtiens la piece jointe suivante

    en fait il ne prens pas en compte la limite de la zone mais la derniere igne remplie de la colonne A.
    je me moque gentiement, mais je n'ai pas de solution.
    edit ps : je n'arrive pas a joindre le fichier en question. je suis en action
    re ps: je precise que j'ai le meme résultat avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Sub copie()
    With Sheets(2)
    Range("a1:g10").Copy .Range("A" & .[A65536].End(xlUp).Row + 1)
    End With
    End Sub
    et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub copie()
        Range("a1:g10").Copy Destination:=Sheets(2).Range("A65536").End(xlUp).Offset(1, 0)
    End Sub

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2007
    Messages : 93
    Par défaut
    Effectivement alsimbad, la 'tite' formule toute simple est assez limitee.

    Comme tu le dis:

    en fait il ne prens pas en compte la limite de la zone mais la derniere igne remplie de la colonne A
    Il faudrait peut etre voir quels cas de figure jeep6259 peut rencontrer. Si jamais toutes les cases de la plage sont pleines alors ca suffirait par contre il faudrait effectivement elaborer si des differents cas se prensentent (genre determiner quelle est la derniere ligne utilisee la plus grande...).

    Si jamais jeep6259 a besoin d'elaborer il pourra toujours demander

    @+

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 567
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 567
    Par défaut
    Bon, comme disais gorfael, ça m'a couté des heures de recherche pour un truc que si ça se trouve, la ligne est juste digne d'un cours preparatoire vba, mais bon, pourquoi faire simple quand on peut faire compliqué, et qu'on a le temps
    Grace aux indication de notre ami ouskel'nor
    j'ai pu réussir a obtenir la piece jointe en bas de feuille
    (a propos, si qu'elqu'un veut bien m'expliquer comment mettre un texte, mettre une pj pour expliciter, puis remettre deuxieme texte. pour le momen, je n'arrive qu'a poser ma pj en fin de texte)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Sub copie()
        Range("a1:g10").Copy Destination:=Sheets(2).Cells(Sheets(2).UsedRange.Rows.Count + 1, 1)
    End Sub
    me permet d'obtenir le resultat escompté, a savoir les dix premiere lignes copié en page 2 a la suite de celles existant déja même si les lignes en question sont vides
    re ps : aller les bleus, boutons l'anglais hors de la finale
    re re ps apres avoir revu ma copie de prés, il reste un défaut, a savoir la case g10, mais pour ce soir, j'y arrive pas a comprendre

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

Discussions similaires

  1. [AC-2003] Tri-Classement, cas d'égalité
    Par leelu dans le forum IHM
    Réponses: 1
    Dernier message: 22/07/2009, 20h40
  2. Tri classement sur plusieurs critères
    Par zahidovich dans le forum Excel
    Réponses: 4
    Dernier message: 27/10/2008, 22h53
  3. [MySQL] Fonction de tri (classement)
    Par fixbraun dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/08/2007, 15h00
  4. [2.0] Différents tri sur la même source de données
    Par Drahas dans le forum Accès aux données
    Réponses: 4
    Dernier message: 14/11/2006, 19h48
  5. Tri les données suivant un critère non alphabétique
    Par travisbarker dans le forum Langage SQL
    Réponses: 5
    Dernier message: 28/05/2006, 23h00

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