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 simple pour déplacer des lignes dans un tableau [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut macro simple pour déplacer des lignes dans un tableau
    bonjour

    dans excel, j'ai une liste très simple, 3 colonnes (mais beaucoup de lignes), et je souhaiterais

    - sélectionner n'importe quelle ligne (parce que je me balade de bas en haut dans la liste)
    - la couper (donc elle disparaît de cette partie du tableau, mais elle est placée en mémoire)
    - aller en bas du tableau
    - la recopier là
    - replacer le curseur où je me trouvais
    - fin de la macro, mais je vais aller à une autre ligne et recommencer

    le but étant de déplacer certaines lignes choisies dans ma p'tite tête et pas d'autres (sans qu'aucun test ne puisse être géré par la macro)

    merci d'avance pour votre vba... (very best aide!)

    - - - en enregistrant une nouvelle macro j'obtiens:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Macro1()
    ' Macro1 Macro
    ' Macro enregistrée le 09.08.2010 par OrdiDuSalon
        Rows("6:6").Select
        Selection.Cut
        Range("A6").Select
        Selection.End(xlDown).Select
        Range("A22").Select
        ActiveSheet.Paste
        Selection.End(xlUp).Select
        Rows("6:6").Select
        Selection.Delete Shift:=xlUp
        Range("A6").Select
    End Sub
    mais je ne sais pas comment gérer les "range"...

    - - - si jamais:
    avant : http://farm5.static.flickr.com/4140/...a65ffa77ff.jpg où le curseur est sur la ligne 6
    après : http://farm5.static.flickr.com/4117/...fb42336a58.jpg où le curseur est de retour sur la ligne 6
    (bon, je viens de voir dans ces images que le système de référencement est L1C1, que je n'utilise normalement pas, mais que j'avais validé pour faire des essais avec mon essai de macro vlb, qui a foiré, d'où ma présente demande)

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Avril 2008
    Messages : 14
    Points : 15
    Points
    15
    Par défaut
    Perso j'utilisais la fonction range tout au début , je la trouve super limitée.
    Essaye de regarder la fonction cells, tu as l'avantage d'avoir des coordonnées x,y.
    C'est plus complexe mais tu vas y gagner en possibilités.
    (oui l'enregistreur de macro aide a commencer mais oriente sur range hélas)

    sinon pour sélectionner la dernière ligne par vba avec range:

    Rows(ActiveSheet.UsedRange.Rows.Count + 1).Select

  3. #3
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 696
    Points
    6 696
    Par défaut
    Citation Envoyé par billx06 Voir le message
    Perso j'utilisais la fonction range tout au début , je la trouve super limitée.
    Essaye de regarder la fonction cells, tu as l'avantage d'avoir des coordonnées x,y.
    Attention Range et Cells ne sont pas des fonctions ! Et leur emploi n'a pas de rapport de puissance, mais de contexte.

    voir l'explorateur d'objets et l'aide VBA dans l'éditeur ainsi que ce super Tutoriel, dans son ensemble et à partir de la page 11...

    Programmer efficacement avec Excel en VBA

    cordialement,

    Didier
    Didier Gonard

    Dernier tutoriel :
    Le VBA qu'est ce que c'est ?
    Tutoriels : Voir la liste de mes tutoriels Excel & VBA et mon site pro sur ma Page DVP
    Cours et tutoriels pour apprendre Excel
    N'oubliez pas de mettre : ..quand c'est le cas !

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 14
    Points : 6
    Points
    6
    Par défaut
    merci d'ores et déjà...

    mais vous semblez vous adresser à quelqu'un qui en connaît beaucoup plus que moi, alors que je n'ai besoin que d'une toute petite macro toute simple pour déplacer une ligne, puis une autre

    pour améliorer mes connaissances, on verra plus tard huhu

    Citation Envoyé par billx06 Voir le message
    Perso j'utilisais la fonction range tout au début , je la trouve super limitée. Essaye de regarder la fonction cells, tu as l'avantage d'avoir des coordonnées x,y. C'est plus complexe mais tu vas y gagner en possibilités. (oui l'enregistreur de macro aide a commencer mais oriente sur range hélas) sinon pour sélectionner la dernière ligne par vba avec range:
    Rows(ActiveSheet.UsedRange.Rows.Count + 1).Select
    comme je l'avais écrit, ça n'est pas moi qui ai choisi les instructions:
    elles ont été générées par le menu >outils >macros >nouvelle macro

    (et j'imagine que ta solution ne fonctionne pas si, dans la feuille excel, on a plusieurs blocs de données les uns en-dessous des autres et que l'on désire travailler dans le premier)

    - - -

    @Ormonth

    merci, mais c'est du chinois pour moi ...ton lien pdf sera pratique dans 1 ou 2 ans...

    - - -
    bon j'ai solutionné la chose en me baladant ici et là, en cherchant une réponse pour chacune de mes lignes (car je me déplace dans une feuille excel et je procède à des manipulations simples, telles qu'on le fait manuellement tous les jours car on n'a pas besoin tous les jours de macros de 15000 lignes), et cette petite macro fonctionne tout simplement :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        Selection.End(xlToLeft).Select '(être sûr de se trouver dans la 1e col.)
        Rows(ActiveCell.Row).Select '(sélection de la ligne à déplacer)
        Selection.Cut '(couper la ligne)
        Selection.End(xlDown).Select '(se déplacer en fin de tableau, dernière ligne avec contenu)
        Rows(ActiveCell.Row).Offset(1, 0).Select '(descendre d'1 ligne)
        ActiveSheet.Paste '(coller)
        Selection.End(xlUp).Select '(remonter jusqu'à la 1e ligne du tableau, celle juste après celle qu'on vient de vider)
        Rows(ActiveCell.Row).Offset(-1, 0).Select '(on remonte d'1 ligne)
        Selection.Delete Shift:=xlUp '(on la détruit)
        Selection.End(xlToLeft).Select '(se trouver dans la 1e col.)
    les explications les plus simples pour les problèmes simples, c'est ce qui aide le mieux les débutants... notamment avec des explications pour chaque ligne...

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

Discussions similaires

  1. Une macro pour supprimer des lignes dans un message
    Par blade2a dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 26/06/2012, 01h26
  2. Réponses: 5
    Dernier message: 05/12/2008, 15h23
  3. Boucler pour effacer des lignes dans une listbox à sélection multiple
    Par simond1 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/08/2008, 22h25
  4. Déplacer des lignes dans une autre feuille
    Par dj-julio dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 22/11/2007, 09h24
  5. [VBA-E] Problème pour insérer des lignes dans une feuille Excel
    Par skystef dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 16/04/2007, 14h13

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