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 :

RechercheV puis suppression


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Par défaut RechercheV puis suppression
    Bonjour à tous,
    je suis nouvelle dans le forum et d'un coup de pouce svp,
    j'utilise la fonction find pour trouver en vba le valeur d'une celulle qui se trouve dans une colonne précise et je souhaiterai lorsque je trouve cette valeur que j'ai nommé nom la supprimer de la colonne. mon probleme est ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    recherche = Application.WorksheetFunction.VLookup(Nom, Sheets("Feuil2").Range("B3:C415"), 1, False)
    pour la suppréssion j'ai ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For Each varI In Sheets("Feuil2").Range("B3:B15")
     If varI = Nom Then
     varI.Select
        Selection.Delete Shift:=xlUp
     End If
     Next
    je pense que c'est celles-ci qui posent problème peut être à cause de mes déclarations
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim varI As Variant
    Dim recherche As Variant
    Dim Nom As String
    quelqu'un aurait il une solution s'il vous plait?
    je ne trouve pas mon erreur...

  2. #2
    Membre chevronné
    Homme Profil pro
    Alternant
    Inscrit en
    Décembre 2015
    Messages
    413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Alternant

    Informations forums :
    Inscription : Décembre 2015
    Messages : 413
    Par défaut
    Premièrement :


    C'est le bouton "#" quand tu écrit un message est ça permet de mieux lire ton code :

    Ensuite tu utilise varI comme variant est dans ta condition tu lui demande si elle est égale à un String : chose impossible dans ton cas vu que tu demande à varI d'être une cellule dans un Range :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each varI In Sheets("Feuil2").Range("B3:B15")
    Du coup pour faire fonctionner ton code il faut utiliser pour ta condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If varI.Value = Nom Then
    Bon courage

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Par défaut
    Merci AI__22pour ta reponse j'ai rajouté les quotes
    J'ai rahjouté le .value mais ça ne marche toujours pas... voici la partie du code concerné (j'ai testé la recherche elle marche):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim varI As Variant
        If Me.OptionButton1.Activate Then
        Call RechercheV
     For Each varI In Sheets("Feuil2").Range("B3:B15")
    If varI.Value = Nom Then
     varI.Select
        Selection.Delete Shift:=xlUp
     End If
     Next
      End If

  4. #4
    Membre Expert
    Femme Profil pro
    Ingénieur
    Inscrit en
    Octobre 2016
    Messages
    1 703
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 30
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2016
    Messages : 1 703
    Par défaut
    Bonjour,

    si varI doit de toute façon être une cellule, déclare-le tout de suite en tant que Range :
    Ensuite, évite d'utiliser les Select et Activate :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    If varI.Value = Nom Then
          varI.Delete Shift:=xlUp
     End If
    D'autre part, si j'ai bien compris ton code : tu cherches Nom dans ta feuille, puis tu fais une boucle sur ta feuille pour re-trouver Nom afin de supprimer la cellule où il apparaît. Tu fais 2 fois la même chose. En plus, faire une boucle pour trouver une certaine cellule, ce n'est pas très efficace, surtout qu'il y a des outils plus puissants. Utilise la fonction Match par exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim i As Long
    i = Application.Match(Nom, Range("B3:B15"), 0) + 2          'donne le n° de la ligne où apparaît Nom
    Range("B" & i).Delete Shift:=xlUp                   'supprime la cellule
    Enfin, tu écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If varI.Value = Nom Then
    Mais tu ne dis jamais avant ce que vaut Nom. Donc la condition peut difficilement être vérifiée.

    Peux-tu nous dire ce que fait la méthode RechercheV.

    J'espère que tu arriveras à avancer avec cela

  5. #5
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Par défaut
    Bonjour riaolle merci beaucoup cela marche enfin!
    un grand merci à vous tous!!

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

Discussions similaires

  1. Insertion puis suppression de saut de page dans excel
    Par tarmin dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 16/11/2011, 11h27
  2. Extraction puis suppression de données
    Par Hobbi1 dans le forum PL/SQL
    Réponses: 5
    Dernier message: 28/01/2010, 14h08
  3. [Batch] Recherche ligne puis suppression dans un fichier
    Par jbarreau-mainson dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 07/01/2010, 11h40
  4. Réponses: 1
    Dernier message: 13/06/2007, 17h20
  5. [DOS] Script de recherche puis suppression
    Par villegente dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 13/02/2007, 10h53

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