Supprimer les lignes contenant une série de valeurs

Bonjour,

Avant toute chose je précise que je ne m'y connais pas en VBA. J'ai quelques notions de programmation, en langage basique, et en SQL, mais ça s'arrete là.

Voici mon problème :

J'ai une liste de valeurs (une colonne excel), obtenue depuis Access. J'ai une BDD sur excel, où je voudrais supprimer toutes les lignes dont la colonne C (feuille 1) contient une valeur contenue dans la colonne A de la feuille 3 (importée depuis access).

Faut-il coder une macro, ou existe-t-il une fonction spécifique ?

Ca serait un truc du style (corrigé en VBA bien sur) :

Label 1

  • 1 --> x
  • Select line x. IF cell Ax = (any cell) in column A (feuil 3) THEN delete line x , x+1 -> x , go to label 1.
  • ELSE, x+1 -> x, go to Label 1
  • END

Je précise que je post également ici dans le but d'apprendre et de m'améliorer sur excel.

Je vous remercie d'avance pour votre aide.

Bonjour,

il manque tout plein d'informations pour que l'on puisse t'aider.

Un petit fichier en exemple serait le bienvenue.

Ps: attention pense à mettre des données fictives dans ton fichier exemple.

Cordialement

Très bien, sous forme de capture d'écran ?

De préférence sous forme de fichier excel après si tu peux pas autrement une capture d'écran explicite pourquoi pas.

Cordialement

Alors vous trouverez ci-dessous 2 captures d'écran.

En premier, ma Base De Données, d'où je veux supprimer les lignes contenant les doublons.

screen shot 06 26 15 at 01 22 pm

Les doublons sont ici :

screen shot 06 26 15 at 01 24 pm

Je vous explique la problèmatique :

J'ai un fichier de nouveaux prospects des hauts de seine. En effectuant une requête access croisant cette liste de nouveaux prospects et ma BDD existante (avant l'ajout de ces nouveaux prospects), j'obtiens une liste de doublons (2e PJ).

Je n'ai pas envie de les supprimer à la main un par un... donc j'aimerais coder une macro (pour simplifier et la tâche, et comme je l'ai dit auparavant, pour me former à faire de l'excel intelligent).

Je vous remercie par avance

Cordialement,

Ok essaye la manipulation suivante dans ta base de données sous excel sélectionne ta colonne C puis va dans l'onglet "Données" d'Excel puis fait "Supprimer les doublons". Regarde si cela te conviens.

Cordialement

Merci de ta réponse, j'y ai déjà pensé.

Mais ce n'est pas l'objectif, je ne cherche pas les doublons au sein d'une même base de données, mais entre deux différentes. Et j'ai obtenu ces doublons grâce à access (2e PJ).

Maintenant, je souhaite les supprimer de ma BDD originale, sans le faire à la main.

Je veux donc juste un code VBA pour coder une macro, qui soit équivalente au code que j'ai propose plus haut, mais adapté au langage VBA.


pour rappel, ce que j'ai proposé :

Label 1

  • 1 --> x
  • Select line x. IF cell Ax = (any cell) in column A (feuil 3) THEN delete line x , x+1 -> x , go to label 1.
  • ELSE, x+1 -> x, go to Label 1
  • END

Le souci : est-il possible d'entrer une référence de cellule avec une variable pour le numéro de ligne ("Ax" dans mon code) ?

Comment dire "n'importe quelle cellule " (any cell dans mon code) ?

Si ta feuille doublons est dans le même classeur que ta feuille "Hauts de Seine" essaye ce bout de code :

Sub doublon()
With Sheets("doublons")
derligne = .Cells(Rows.Count, "A").End(xlUp).Row
derligne2 = Sheets("Hauts de Seine").Cells(Rows.Count, "C").End(xlUp).Row
    For i = 2 To derligne
        nom = .Range("A" & i)
        For Z = derligne2 To 2 Step -1
            If Sheets("Hauts de Seine").Cells(Z, "C") = nom And compteur = 1 Then
                Sheets("Hauts de Seine").Rows(Z).Delete
            Else
                If Sheets("Hauts de Seine").Cells(Z, "C") = nom Then
                    compteur = 1
                End If
            End If
        Next Z
        compteur = 0
    Next i
End With
End Sub

je te remercie.

Sur excel 2007 Fr, j'entre où ce code VBA ?

Tu fais ALT + F11 pour ouvrir l'éditeur vba, ensuite tu fais insertion module et tu copies ce code dans le module.

Cordialement

ça n'a aps fonctionné. Où très peu, je n'ai eu que 7 suppressions sur 147 à faire...


ça n'a pas fonctionné... que 6 suppressions sur 170

J'ai pourtant une idée très claire du code, mais je ne suis pas assez familier de VBA pour pouvoir le traduire dans ce langage...


à ce que je comprends, tu as codé de manière "intelligente" (mais forcément plus compliquée du coup), tu as créé un compteur que tu incrémentes à chaque fois et où tu recrées la variable "nom".

N'est-il pas possible de créer une seule boucle, à exécuter pour chaque ligne, qui vérifie si la société dans la colonne C est la même que la que celle de la colonne A de la feuille doublons, et si oui ça supprime la ligne, si non, ça passe à la suivante ?

Rechercher des sujets similaires à "supprimer lignes contenant serie valeurs"