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 cellule VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité de passage
    Femme Profil pro
    Environnement
    Inscrit en
    Juillet 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Environnement

    Informations forums :
    Inscription : Juillet 2025
    Messages : 3
    Par défaut Supprimer cellule VBA
    Bonjour à tous,

    J'aimerais supprimer des cellules en fonction de mon test VRAI/FAUX, j'ai des dates qu'il faut re associer au bon fichier, si les deux fichiers correspondent j'aimerais que la macro passe à la cellule suivante et si elles ne correspondent pas, j'aimerais qu'elle supprime les cellules en remontant les cellules.

    Ex: La colonne F donne le résultat de "=E1=A1"
    Nom : Image1.png
Affichages : 107
Taille : 231,1 Ko

    Pour l'instant j'arrive à supprimer les cellules avec un bouton mais je le fais à la main et c'est long, y'aurait-il moyen d'automatiser ça s'il vous plait?


    Le code qui supprime manuellement via un bouton:

    Sub Supp()

    Range(ActiveCell, ActiveCell.Offset(0, 3)).Select
    Range(ActiveCell, ActiveCell.Offset(0, 3)).Activate
    Selection.Delete Shift:=xlUp

    End Sub

    Le code que j'ai essayé pour automatiser mais qui ne fonctionne pas (Err: "For sans Next"):

    Sub Supp()

    For Line = 1 To 1000
    If Cells(ligne, 6) = "FAUX" Then
    Range(ActiveCell, ActiveCell.Offset(0, 3)).Select
    Range(ActiveCell, ActiveCell.Offset(0, 3)).Activate
    Selection.Delete Shift:=xlUp
    GoTo
    ActiveCell.Offset(1).Select
    End If


    End Sub

  2. #2
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 282
    Par défaut
    Bonjour
    pas besoin de macro pour faire ça

    en colonne A une liste avec des valeurs (chaque valeur est unique d'après ce que je comprends)
    en colonne E une liste avec des valeurs commune à la colonne A

    si vous voulez identifier les valeurs de la colonne A qui ne sont pas présentes dans la colonne E vous pouvez utiliser la fonction EQUIV (qui renverra une erreur) ou NB.SI (qui renverra 0) puis supprimer les lignes sans correspondance

    avec une autre solution consiste à utiliser une mise en forme conditionnel (valeur en double)

    ici il est facile d'identifier en rouge les valeurs présentes dans les 2 colonnes
    Nom : Capture d'écran 2025-07-04 154930.png
Affichages : 81
Taille : 42,1 Ko

    vous pouvez aussi choisir d'identifier les valeurs uniques
    Nom : Capture d'écran 2025-07-04 155139.png
Affichages : 79
Taille : 22,5 Ko

    il ne vous reste plus qu'à sélectionner les lignes via un filtre par couleur et à supprimer les valeurs sans correspondance

    Stéphane

  3. #3
    Membre émérite Avatar de Valtrase
    Homme Profil pro
    Jeune retraité...
    Inscrit en
    Janvier 2016
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Jeune retraité...
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Janvier 2016
    Messages : 508
    Par défaut
    Bonjour à tous,
    Votre code n'est pas complet, et renvoie une erreur. Vous devez fermer votre boucle exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For Each Cell In MaPlage
    '...
    '...
    Next Cell
    Voici un code minimaliste qui doit faire ce que vous demandez :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub Supp()
        ' // Peut-être faut-il adapter au besoin par exemple With Feuil1 ou With sh_MyData etc...
        With ActiveSheet
            Dim Plage As Excel.Range ' // Affectation d'une variable Plage
            Set Plage = .Range("F1:F" & .Range("F" & .Rows.Count).End(xlUp).Row)
     
            Dim rowCounter As Long ' // Déclaration d'un compteur
            ' // Pour une suppression efficace on décompte de la dernière ligne à la première
            For rowCounter = Plage.Rows.Count To 1 Step -1
                ' // Si la cellule est égale à VRAI alors on supprime la ligne complète
                If .Cells(rowCounter, "F").Value = True Then .Cells(rowCounter, "f").EntireRow.Delete
            Next rowCounter
        End With
    End Sub
    Jean-Paul sous Office 365 et Windows 10/11 (Intel I7 16Go)

    Si vous avez trouvé réponse à votre question penser à la passer en :resolu: Vous avez aimé la discussion alors un :plusser: fait toujours plaisir.
    Le savoir n'a de valeur que s'il est partagé.
    La vérité de demain se nourrit de l'erreur d'hier. Antoine de Saint-Exupéry

  4. #4
    Invité de passage
    Femme Profil pro
    Environnement
    Inscrit en
    Juillet 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Environnement

    Informations forums :
    Inscription : Juillet 2025
    Messages : 3
    Par défaut
    Bonjour Valtrase,

    Merci pour votre retour, je vais essayer comme ça, ça devrait aller mieux!

  5. #5
    Invité de passage
    Femme Profil pro
    Environnement
    Inscrit en
    Juillet 2025
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Environnement

    Informations forums :
    Inscription : Juillet 2025
    Messages : 3
    Par défaut
    Bonjour Stéphane,

    Merci pour votre retour.
    Si je fais ça cela va me supprimer mes valeurs qui sont juste décalées d'une ligne, dans mon exemple, la 3eme ligne renvoie faux mais lorsque les cellules de la 2eme ligne sont supprimées et remontées vers le haut, les deux valeurs correspondent bien.
    A moins que je n'aie pas compris votre suggestion (ce qui est fort possible!)

    Merci
    Lola

  6. #6
    Membre Expert
    Homme Profil pro
    ingénieur
    Inscrit en
    Mars 2015
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ingénieur
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2015
    Messages : 1 282
    Par défaut
    Citation Envoyé par LolaMartinez Voir le message
    Bonjour Stéphane,

    Merci pour votre retour.
    Si je fais ça cela va me supprimer mes valeurs qui sont juste décalées d'une ligne, dans mon exemple, la 3eme ligne renvoie faux mais lorsque les cellules de la 2eme ligne sont supprimées et remontées vers le haut, les deux valeurs correspondent bien.
    A moins que je n'aie pas compris votre suggestion (ce qui est fort possible!)

    Merci
    Lola
    Bonjour
    il faudrait que vous expliquiez l'objectif plutôt que le début de votre solution par macro
    dans votre premier message vous dites vouloir associer des dates à des fichiers.

    3 questions
    où se trouve la liste des fichiers ?
    où est celle des dates ?
    comment souhaitez vous les mettre en correspondance ?

    ensuite, est-ce une tâche ponctuelle ou une tâche récurrente ?
    combien y a t-il de fichier : ? quelques-uns ou plusieurs milliers ?

    je pense qu'une macro n'est pas nécessaire et qu'il existe déjà tous les outils dans Excel pour traiter votre problème simplement

    Stéphane

Discussions similaires

  1. [XL-2016] VBA pour supprimer cellule
    Par sophang dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 21/12/2023, 15h01
  2. Fusionner cellules VBA
    Par Go_Ahead dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 19/05/2008, 13h37
  3. supprimer enregistrement vba
    Par rasta girl dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/07/2007, 14h55
  4. supprimer enregistrement vba
    Par rasta girl dans le forum IHM
    Réponses: 3
    Dernier message: 02/07/2007, 12h34
  5. Réponses: 6
    Dernier message: 25/03/2006, 17h46

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