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 de lignes à partir d'un point particulier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Par défaut [VBA-E] Suppression de lignes à partir d'un point particulier
    Salut a tous !

    J'ai besoin de vos lumières ! Je vous explique mon problème :

    J'ai réalisé une petite macro me permettant de supprimer les 10 premières lignes d'un tableau, la voici :




    Sub Supp()

    For i = 1 To 10

    Set r = Range("A1: P10" )
    r.Rows(1).Delete shift:=xlUp

    Next i

    End Sub




    En plus de ca, j'aimerai effectuer la suppression de 10 lignes supplémentaires à partir de la cellule contenant le mot "toto".

    En gros voila comment ca se présente à travers un exemple :

    Ligne 11 "culcul"
    Ligne 12 "tata"

    etc...

    Ligne 16 "toto"

    *Suppression des 10 lignes suivantes*

    On m'a conseillé de faire une première boucle chargée de trouver le mot "toto" dans le tableau puis d'effectuer une autre boucle de suppression des 10 lignes. Mais je ne sais pas comment m'y prendre

    Des idées...

    Merci d'avance !

  2. #2
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    Une fois que tu as trouvé le numéro de la ligne ou il y a écrit toto (effectivement en faisant une boucle) pour supprimer 10 lignes il suffit que tu fasse un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Rows(a+1 & ":" & a+10).Select
     
    Selection.Delete Shift:=xlUp
    où a est la ligne ou toto apparait
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  3. #3
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Par défaut
    Voila ce que je viens de faire :

    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
    Sub Test()
     
    Dim Finclasseur As Long
     
    Dim i As Long
     
    Finclasseur = Worksheets("Feuil1").UsedRange.Row - 1
    Finclasseur = Finclasseur + Worksheets("Feuil1").UsedRange.Rows.Count
     
    For i = 1 To Finclasseur
     
    If Application.WorksheetFunction.CountA(Rows.Value(i)) = "toto" Then MsgBox "toto trouvé"
     
    Next i
     
    End Sub
    Pour l'instant je veux simplement voir s'il trouve le mot "toto" mais ca plante au niveau du if et je sais pas pourquoi

    Suggestions/idées ?

    Merci d'avance

  4. #4
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 344
    Par défaut
    If Application.WorksheetFunction.CountA(Rows.Value(i)) = "toto" Then MsgBox "toto trouvé"
    C'est quoi ça

    Pourquoi tu fais pas tout simplement un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    For i = 1 To Finclasseur
    If cells(i,1).value = "toto" Then MsgBox "toto trouvé"
    Next i
    Attention ce code est valable si le "toto" il est dans la première colonne, a toi de le mettre en fonction de ce que ut fais

    Par exemple si tu veux le faire sur une plage de cellules et aussi sur les colonnes, tu rajoute une boucle avec un j qui te prendra les colonnes

    Et si tu veux utiliser une plage en faisant un "dim r as range" tu écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r.cells(i,j).value = "toto"
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  5. #5
    Membre habitué
    Inscrit en
    Juillet 2006
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 10
    Par défaut
    J'ai l'art de compliquer les choses moi Merci ca marche maintenant

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

Discussions similaires

  1. [VBA-E] Supprimer des lignes à partir d'une variable tableau
    Par humbp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/02/2008, 08h09
  2. [vba-e] Suppression de lignes
    Par alorse dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/04/2007, 21h31
  3. [VBA-WORD] Suppression de ligne
    Par Tsuna78 dans le forum VBA Word
    Réponses: 3
    Dernier message: 28/03/2007, 13h56
  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. Réponses: 4
    Dernier message: 26/01/2006, 12h03

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