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 :

Ajouter/supprimer ligne à partir de la dernière ligne d'une plage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Points : 35
    Points
    35
    Par défaut Ajouter/supprimer ligne à partir de la dernière ligne d'une plage
    Bonjour

    Je suis en train de bosser sur un fichier Excel dans lequel un tableau de données est représenté. Je l'ai renommé "data" et j'aimerais maintenant créer 2 macros simples afin d'y ajouter ou d'y supprimer une ligne.

    En faisant une macro enregistrée, je me positionnais sur la dernière ligne du tableau et je faisais clic droit, insertion. Le problème, c'est qu'en faisant comme ça, dés que je cliquerai sur le bouton de cette macro, il va à chaque fois ajouter la ligne à partir de la ligne que j'ai sélectionné lors de la création de ma macro.

    Je souhaiterais donc savoir comment demander à Excel qu'il se positionne à chaque fois sur la dernière ligne de ma plage "data" quel que soit le nombre de lignes dans le tableau ?

    Je vous en remercie d'avance

  2. #2
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut re
    tu peux faire un check d une colonne et supprimmer toutes les lignes vides ou les masquer

    Pour masquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub CommandButton1_Click()
    Dim i As Integer
     For i =  1 to 240 'debut de ta cellute a ta derniere cellule 
        If ActiveSheet.Range("Q" & i).Text = "" Then
           Rows(i).Hidden = True
       End If
     Next i
    End Sub
    sinon pour supprimmer tu remplace hidden par delete et t enleve true
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Points : 35
    Points
    35
    Par défaut
    Merci pour ta réponse.

    Cependant, le but n'est pas de vider ou de masquer les lignes vides mais simplement de me positionner toujours sur la dernière ligne de mon tableau (nommé "data") puis d'y faire un simple ajout de ligne.

  4. #4
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut re
    je lis a chaque fois en diagonale...

    ta derniere ligne de ton tableau est elle vide ?

    deja pour ajouter une ligne le code est :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.EntireRow.Insert
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Points : 35
    Points
    35
    Par défaut
    Elle sera toujours vide au moment de l'ajout d'une ligne.

    Pour la suppression également. La seule nuance, c'est qu'à la suppression d'une ligne (la dernière de ma plage de données "data"), il faudra ajouter une bordure en bas de ma plage de données vu que la suppression de la dernière ligne de ma plage supprime également la bordure du bas de mon tableau.

  6. #6
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut re
    pour selectionner la derniere ligne y a un code du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range ("...").End(xlup).row.select
    Mais je me souviens plus exactement et je cherche mais je retrouve pas ...
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  7. #7
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    Par défaut re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("...").Range("..").End(xlDown).Select
    sa marche chez moi
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  8. #8
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Points : 35
    Points
    35
    Par défaut
    Je te joins mon petit fichier test.

    Regarde la macro du bouton 1 s'il te plait
    Fichiers attachés Fichiers attachés

  9. #9
    Membre averti Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Points : 391
    Points
    391
    tom

    "Barbar : The rest of the warrior"

    Into the wild....

  10. #10
    Membre averti
    Inscrit en
    Février 2008
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 267
    Points : 306
    Points
    306
    Par défaut
    re,

    Utilise ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     Sub ajouter()
    Dim derlig As Integer
    derlig = Range("c65536").End(xlUp).Row + 1
    Worksheets("Feuil1").Range("c" & derlig).EntireRow.Insert
    End Sub
    Veille à mettre des données dans ta colonne C

    A te relire

    Dan

  11. #11
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Points : 35
    Points
    35
    Par défaut
    Très bien ça marche rien qu'en mettant un chiffre en C19 uniquement.

    Comment pourrais-je inclure une sécurité pour cette macro, à savoir qu'elle ne pourrait se déclencher que si la colonne C n'est pas vide ? (avec un petit message d'erreur si tentative avec tableau vide)

    Aussi, pour supprimer une ligne en bas de ma plage, tout en gardant la ligne de bordure basse, comment faire ? Je vais tester.

    Merci

  12. #12
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 96
    Points : 35
    Points
    35
    Par défaut
    Bon, pour la ligne c'est bon

    Reste à savoir pour l'alerte de sécurité comme demandé juste au-dessus

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/04/2012, 09h27
  2. Générer des lignes à partir de 2 autres lignes
    Par laloune dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 30/03/2012, 17h11
  3. Réponses: 4
    Dernier message: 22/02/2012, 14h10
  4. [XL-2000] Copier données à partir de la dernière ligne remplie
    Par chouki60 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/07/2011, 17h45
  5. [VBS-Excel] Ecrire à partir de la dernière ligne
    Par ESVBA dans le forum VBScript
    Réponses: 11
    Dernier message: 06/07/2011, 20h47

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