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 :

Supprimer lignes suivant contenu VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Par défaut Supprimer lignes suivant contenu VBA
    Bonjour tout le monde !

    J'ai un fichier contenant un nombre de lignes qui changent puisque de nouvelles données viennent s'agrémenter au fil des jours. Les colonnes vont de A à P.
    J'ai un code VBA permettant de remplir des cellules vides avec le même contenu que celles du dessus, que voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub remplir_vides()
    With Range("A1:B" & [P65000].End(xlUp).Row)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
    End With
    With Range("B1:C" & [P65000].End(xlUp).Row)
    .SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
    .Value = .Value
    End With
    End Sub
    Il fonctionne, sauf pour quelques lignes qui ne se remplissent pas... Je ne sais pas pourquoi.

    Mais mon autre souci est que je souhaite également supprimer les lignes entières où le mot "total" apparait en colonne F. Voici les codes que je teste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub suppr_test()
    For i = [J65000].End(xlUp).Row To 2 Step -1
        If Cells(i, 8) Like "*TOTAL*" Then Rows(i).Delete
    Next i
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub suppr()
     
    For i = Cells(1, 1).CurrentRegion.Rows.Count To 1 Step -1
    If Cells(i, 1).Value = "*TOTAL*" Then Cells(i, 1).EntireRow.Delete
    Next i
    End Sub
    Absolument rien ne se passe... Pouvez-vous m'aider? Je ne peux pas joindre le fichier car confidentiel...... Merci à vous

  2. #2
    Membre Expert Avatar de Zekraoui_Jakani
    Homme Profil pro
    Inscrit en
    Novembre 2013
    Messages
    1 671
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 671
    Par défaut Suppr lignes suivant contenu VBA
    Je suggère une lecture séquentielle:
    1) si la cellule est vide, copier la précédente
    2) si la cellule contient "total", supprimer la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test03()
        For j = 2 To x
            If ActiveCell = "" Then ActiveCell.Value = ActiveCell.Offset(-1, 0).Value
        Next j
    End Sub
     
    Sub test04()
        For j = 2 To y
            If ActiveCell.Value Like "*Total*" Then ActiveCell.Rows.Delete
        Next j
    End Sub

  3. #3
    Membre confirmé
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Par défaut
    Merci pour ta réponse. J'ai testé mais rien ne se passe... Pourtant le code me semble correct...

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour, cela vient peut-être de la façon dont est écrit "total", il faut soit :
    - mettre "Option Compare Text" en haut de Module
    - utiliser Ucase
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Ucase(ActiveCell.Value) Like "*TOTAL*" Then ActiveCell.Rows.Delete
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre confirmé
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Par défaut
    Citation Envoyé par casefayere Voir le message
    - mettre "Option Compare Text" en haut de Module
    - utiliser Ucase
    J'ai testé les deux ca ne fonctionnement pas ... Je ne comprends vraiment pas où est le problème.

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Je ne peux pas joindre le fichier car confidentiel
    Qu'est-ce qui t'empêche d'envoyer un fichier structuré de la même façon avec des données "Bidon"

    Quoique d'accord avec Marc, il aurait fallu poster la demande sur le forum "Macros et Vba Excel"
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  7. #7
    Membre confirmé
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Par défaut
    Citation Envoyé par casefayere Voir le message
    Qu'est-ce qui t'empêche d'envoyer un fichier structuré de la même façon avec des données "Bidon"

    Quoique d'accord avec Marc, il aurait fallu poster la demande sur le forum "Macros et Vba Excel"

    Bonjour, je vous mets en PJ un fichier avec les macros et des données "bidons".
    Exemple.xlsm

    Effectivement je me suis trompée en postant le message, comment faut-il faire pour le déplacer? Merci à vous ....

  8. #8
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    bonjour,
    sans chercher, pour l'instant, tu écris
    où le mot "total" apparait en colonne F
    et ton (ou tes) codes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub suppr_test()
    For i = [J65000].End(xlUp).Row To 2 Step -1
        If Cells(i, 8) Like "*TOTAL*" Then Rows(i).Delete
    Next i
    End Sub
    pour colonne F "Cells(i,6)", dans ton code, tu analyses la colonne H et dans celui-ci tu analyses la colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub suppr()
     
    For i = Cells(1, 1).CurrentRegion.Rows.Count To 1 Step -1
    If Cells(i, 1).Value = "*TOTAL*" Then Cells(i, 1).EntireRow.Delete
    Next i
    End Sub
    et je ne vois le mot "TOTAL" ni en A, ni en H
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  9. #9
    Membre confirmé
    Femme Profil pro
    Ingénieur supply chain
    Inscrit en
    Mai 2015
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur supply chain
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2015
    Messages : 125
    Par défaut
    Effectivement j'avais oublié que j'avais masqué des colonnes quand j'ai modifié le code VBA.... Bon bin merci à vous tous pour les codes ! Le traitement est un peu long mais ça fonctionne.

    J'utilise celui-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    For i = [J65000].End(xlUp).Row To 2 Step -1
        If Cells(i, 10) Like "*TOTAL*" Then Rows(i).Delete
    Next i
    End sub
    Merciii !

  10. #10
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Le traitement est un peu long mais ça fonctionne.
    passes par un (des) tableaux
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 11/03/2014, 11h12
  2. Empêcher saisies dans plage (ligne) suivant contenu colonne
    Par jpma75 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 26/01/2013, 17h22
  3. Supprimer ligne suivant valeur
    Par isarian dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/12/2011, 15h14
  4. Réponses: 14
    Dernier message: 19/11/2010, 11h28
  5. VBA EXCEL - Sélection d'une ligne suivant saisie
    Par brethomeau dans le forum Macros et VBA Excel
    Réponses: 48
    Dernier message: 15/11/2005, 18h41

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