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 :

macros suppression ligne [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 88
    Points : 67
    Points
    67
    Par défaut macros suppression ligne
    bonjour,

    Je suis débutant dans le vba. J'ai créé une macro pour supprimer une ligne en se positionnant sur la cellule de la ligne concernée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton2_Click()
    Dim R As Integer
    R = ActiveCell.Row
    Rows(R).Select
    Rows(R).EntireRow.Delete Shift:=xlUp
    End Sub
    Par contre sur la 1ere cellule de la ligne suivante je voudrais que soit affiché la valeur "1", comment faut il procéder?

    Merci pour votre aide
    Cordialement
    ronin.01

  2. #2
    Membre habitué Avatar de LouiMz
    Homme Profil pro
    Inscrit en
    Février 2010
    Messages
    104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 104
    Points : 154
    Points
    154
    Par défaut
    Bonjour,

    Si j'ai bien compris:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton2_Click()
    Dim R As Integer
    R = ActiveCell.Row
    Range("A" & R+1).value = 1 'On met la valeur 1 sur la 1er cellule de la ligne au dessous de la ligne active
    Rows(R).Delete (xlUp) 'Puis on supprime la ligne contenant la cellule active
    End Sub
    Cordialement
    Cordialement

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Quand tu supprime la ligne entière de la cellule sélectionnée, la cellule située sur la même colonne de la ligne suivante devient la cellule active, si c'est sur cette dernière que tu veux écrire 1 alors fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub CommandButton1_Click()
     
        ActiveCell.EntireRow.Delete
        ActiveCell = 1
     
    End Sub
    Si tu veux que se soit sur la ligne dessous la cellule qui est devenue la cellule active alors, fait celà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub CommandButton1_Click()
     
        ActiveCell.EntireRow.Delete
        ActiveCell.Offset(1, 0) = 1
     
    End Sub
    Hervé.

  4. #4
    Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    88
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 88
    Points : 67
    Points
    67
    Par défaut [excel 07] macros suppression ligne
    Merci pour vos réponses ma macro fonctionne bien maintenant. J'aurai une autre question dans le même style.

    J'ai une autre macro mais cette fois pour ajouter une ligne, elle fonctionne correctement, cependant je suis obligé de me positionner sur une cellule pour lancer la macro. Comment dans le code je dois préciser sur quelle cellule se positionner pour lancer la procédure?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub CommandButton1_Click()
    Dim R As Integer
    R = ActiveCell.Row
    Rows(R).Select
    If MsgBox("Voulez-vous ajouter une ligne ?", _
                        vbYesNo + vbQuestion + vbDefaultButton2, "Ajout") = vbYes Then
    Selection.Insert Shift:=xldwon
    Range("a" & R - 1).Select
    Selection.Copy
    Range("a" & R).Select
    ActiveSheet.Paste
    ...........
    Cordialement
    ronin.01

  5. #5
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonsoir,

    Une possibilité parmis bien d'autres avec une inputbox :

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    Private Sub CommandButton1_Click()
     
        Dim R As Range
        Dim Adr As String
     
     
        If MsgBox("Voulez-vous ajouter une ligne ?", _
                  vbYesNo + vbQuestion + vbDefaultButton2, _
                  "Ajout") = vbYes Then
     
            Adr = InputBox("Avant quelle cellule voulez-vous faire l'insertion ?", "Cellule.")
     
            'gère l'erreur d'une mauvaise saisie
            On Error Resume Next
            Set R = Range(Adr)
     
            If Err.Number <> 0 Then
                MsgBox "Erreur de saisie dans l'adresse !"
                Exit Sub
            End If
     
            On Error GoTo 0
     
            'insère une cellule au dessus de la cellule de référence
            R.Insert xlShiftDown
     
            'copie la valeur de la cellule située au dessus
            'de la cellule ajoutée dans la cellule ajoutée
            R.Offset(-2, 0).Copy R.Offset(-1, 0)
     
        End If
     
        'ici ton code...
     
    End Sub
    Hervé.

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

Discussions similaires

  1. Macro : suppression ligne sur base de la date
    Par DrDim dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 09/08/2014, 14h20
  2. Macro suppression lignes en fonction plusieurs conditions
    Par edouardM dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/07/2013, 16h32
  3. [XL-2003] Macro suppression ligne avec condition
    Par jenifer699 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 21/08/2012, 12h43
  4. [XL-2003] Macro suppression ligne avec condition 3 mots
    Par jenifer699 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/08/2012, 17h45
  5. Macro suppression de ligne
    Par malabarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/06/2008, 15h21

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