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 :

[VBA-E]suppression ligne d'après lisbox multicritère


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 17
    Par défaut [VBA-E]suppression ligne d'après lisbox multicritère
    Bonjour,

    Grâce à vous j'ai réussi à faire ma zone de liste multicritère mais je n'arrive pas à supprimer les lignes dans mon tableau xcel lorsque j'ai sélectionné 1 ou + personne dans ma listbox.

    merci bcp
    claire

  2. #2
    Membre éclairé Avatar de marsupilami34
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 576
    Par défaut
    Pour supprimer une ligne de ta feuille excel, le code est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Rows(i).select
    Selection.delete Shift:=xlUp
    Il te faut donc balyer talistbox et ta feuille excel parallèlement

  3. #3
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par marsupilami34
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Rows(i).select
    Selection.delete Shift:=xlUp
    Essaye d'éviter les Select:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Rows(i).delete Shift:=xlUp
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 17
    Par défaut
    voici le code que j'ai fais et qui ne marche pas, erreur "indice n'appartient pas à sélection" pour ligne en gras:
    mais je crois que je me suis perdu dans un truc trop compliqué!désolée de ne pas l'avoir mis au début.

    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
    37
    38
    39
    40
    Private Sub supsalsorti_Click()
    Dim rowrange As Range
    rowcnt = 0
    For r = 0 To salsorti.ListCount - 1
    If salsorti.Selected(r) Then
        rowcnt = rowcnt + 1
        If rowcnt = 1 Then
        Set rowrange = ActiveSheet.Rows(r + 1)
       rowrange.Copy
       Worksheets("sortie").Select
       Range("a1").Select
       ActiveSheet.Paste
     For i = 0 To 50
    While (Worksheets("salarie").Cells(i, 1).Value = Worksheets("sortie").Range("a1").Value)
    If Worksheets("salarie").Cells(i, 1).Value = rowrange Then
    Rows(i).Delete
    End If
    i = i + 1
    Wend
    Next
        Else
        Set rowrange = Union(rowrange, ActiveSheet.Rows(r + 1))
      rowrange.Copy
       Worksheets("sortie").Select
       Range("a1").Select
       ActiveSheet.Paste
     For i = 0 To 50
    While (Worksheets("salarie").Cells(i, 1).Value = Worksheets("sortie").Range("a1").Value)
    If Worksheets("salarie").Cells(i, 1).Value = rowrange Then
    Rows(i).Delete
    End If
    i = i + 1
    Wend
    Next
        End If
    End If
    Next r
    'If Not rowrange Is Nothing Then rowrange.Select
    'Unload Me
    End Sub

  5. #5
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par clairefranclieu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    For i = 0 To 50
    While (Worksheets("salarie").Cells(i, 1).Value = Worksheets("sortie").Range("a1").Value)
    Il n'existe pas de Row 0!

    Edit --> Je pense que ça génère une autre erreur (1004?)
    Es-tu certaine de l'orthographe des feuilles "salarie" et "sortie".
    Par exemple, un espace ou un accent parasite.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Août 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 17
    Par défaut
    j'ai testé et j'ai erreur 1004 si i=0 mais si je mets i=1, alors il copie bien une ligne mais celle du dessus.

    Et même si ça "marche", il n'y a aucune ligne supprimée.

    Effectivement, j'avais des erreurs dans mes noms de feuilles

  7. #7
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Citation Envoyé par clairefranclieu
    je n'arrive pas à supprimer les lignes dans mon tableau xcel lorsque j'ai sélectionné 1 ou + personne dans ma listbox.
    Oui...

    Et alors?

    Si tu n'y arrives pas c'est, peut-être, qu'il est temps d'étudier un peu le langage que tu veux utiliser.

    Tu vas devoir faire une boucle et une recherche (peut-être par une boucle) dans cette boucle.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. VBA - Pb Suppression lignes sur plage filtrée
    Par oracle7556 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/06/2010, 21h54
  2. [VBA-E]: Suppression de feuilles après création
    Par michel2662 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/04/2007, 16h36
  3. [VBA-E]suppression lignes a partir d'une cellule active
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/02/2007, 15h01
  4. [VBA]Excel - Suppression de ligne
    Par Jseb de Lyon dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/01/2006, 15h22
  5. [VBA-E] Parcourir les lignes filtrées après un filtre auto
    Par leptitdave dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/10/2005, 13h14

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