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 :

Déplacement de ligne [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Par défaut Déplacement de ligne
    Bonsoir, j'ai un problème de déplacement de ligne et je n'arrive pas à trouver l'erreur. si vous pouvez m'aider, merci

    Dans la macro suivante, je vais chercher une ligne de donnés dans une feuille pour la coller dans une autre.
    Tout se passe bien, jusqu'au moment ou il s'agit de coller les donnés coupées. rien ne se colle alors que la variable Objet2 contient bien les données à coller et que la ligne où elle doivent être collées est bien sélectionnée.

    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
    Private Sub DEPLACER_Click()
    Dim R
    Dim Objet1
    Dim Objet2
    Dim Ligne As Long
    On Error Resume Next
    Ligne = Me.ComboBox4.ListIndex + 2
    R = MsgBox(" Confirmez-vous le déplacement dans [ANNULATIONS_" & ChoixAnnee & "] ? ", vbYesNo + vbInformation, "Gestion INSCRIPTIONS")
    If R <> 6 Then Exit Sub 'si OK, efface la ligne de données dans la base de données
    Sheets("INSCRIPTIONS_" & ChoixAnnee).Select
    Rows(Ligne).Select
    Objet1 = Selection
    Objet2 = Objet1
    Selection.Cut
    Worksheets("ANNULATIONS_" & ChoixAnnee).Select
    Rows(Worksheets("ANNULATIONS_" & ChoixAnnee).Range("A1000").End(xlUp).Row + 1).Select
    Objet2.Paste
    Range("A2:A1000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Worksheets("ANNULATIONS_" & ChoixAnnee).Visible = False
    Sheets("INSCRIPTIONS_" & ChoixAnnee).Select
    Range("A2:A1000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete
    Sheets("TABLEAU_DE_BORD").Select
    End Sub

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 419
    Par défaut
    Bonjour,

    A tester:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub DEPLACER_Click()
        Dim R
        Dim Ligne As Long
        Ligne = Me.ComboBox4.ListIndex + 2
        R = MsgBox(" Confirmez-vous le déplacement dans [ANNULATIONS_" & ChoixAnnee & "] ? ", _
                    vbYesNo + vbInformation, "Gestion INSCRIPTIONS")
        If R <> 6 Then Exit Sub                         'si OK, efface la ligne de données dans la base de données
        Sheets("INSCRIPTIONS_" & ChoixAnnee).Rows(CStr(Ligne)).Select
        Selection.Copy Worksheets("ANNULATIONS_" & ChoixAnnee).Range("A1000").End(xlUp).Offset(1, 0)
        Selection.Delete Shift:=xlUp
        '...
    A noter que l'instruction "On Error Resume Next" empêche de voir où le code plante! Cette instruction n'est à utiliser que quand on sait exactement pourquoi il y aura une erreur à un certain endroit du code et que l'on sait très exactement comment la gérer.

    Cordialement.

  3. #3
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Par défaut Déplacement de ligne
    Bonjour, et merci de l'intérêt porté à mon problème.

    Ca ne fonctionne pas. En fait cela a eu pour effet de copier une des cellules de mon TABLEAU_DE_BORD dans la feuille ANNULATIONS_2022 et de supprimer tout le reste de mon TABLEAU_DE_BORD.
    Je précise que j'utilise la fenêtre des variables locales et le pas à pas pour déterminer d'où vient le problème, c'est comme ça que j'ai vu que les données figuraient bien dans la variable et que la ligne de destination était bien sélectionnée.

  4. #4
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 419
    Par défaut
    Bonjour,

    Bizarre, la version simple ci-attachée fonctionne parfaitement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Deplacer()
        Dim ligne As Long
        ligne = ActiveCell.Row
        ActiveSheet.Rows(ligne).Select
        Selection.Copy Worksheets(2).Range("A1000").End(xlUp).Offset(1, 0)
        Selection.Delete Shift:=xlUp
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Homme Profil pro
    Retraité
    Inscrit en
    Août 2017
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Service public

    Informations forums :
    Inscription : Août 2017
    Messages : 23
    Par défaut Déplacement de ligne
    Bonjour
    Oui, maintenant ça marche. Je pense que j'avais mal adapté la première solution.
    En tous cas, là c'est impeccable.
    Merci beaucoup.
    Bonne journée

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

Discussions similaires

  1. Déplacement de ligne dans une grille
    Par Redlet dans le forum Composants VCL
    Réponses: 2
    Dernier message: 13/03/2009, 12h00
  2. Réponses: 19
    Dernier message: 09/04/2008, 14h17
  3. Déplacement de lignes d'une partition à une autre
    Par marcofil dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 22/08/2006, 17h55
  4. Déplacement de lignes dans un tableau HMTL
    Par Maxime_ dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 27/01/2006, 09h43
  5. Dbgrid Executer une procedure dans un déplacement de ligne
    Par Morisse dans le forum Bases de données
    Réponses: 2
    Dernier message: 03/05/2005, 07h01

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