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 :

Rechercher sur deux colonnes dans un autre classeur [XL-2019]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2023
    Messages : 2
    Par défaut Rechercher sur deux colonnes dans un autre classeur
    Bonjour à tous, je suis en difficulté pour un bout de code et j'aimerai un peu d'aide s'il vous plait

    A partir d'un classeur "1" j'aimerai ouvrir un Classeur "2" pour y faire une recherche sur deux colonnes en fonction des valeurs de deux colonnes du classeur "1" et si elles sont égales, supprimer la ligne entière du classeur "2"

    Classeur "1" => origine
    Classeur "2" => à rechercher dedans et supprimer ligne

    Pour toutes les lignes de la page "feuille1" de mon classeur "1", recherche dans la page "feuille2" du classeur "2" sur toutes les lignes
    si la valeur de la cellule colonne B de mon classeur "1" est égale à la valeur de la cellule colonne A de mon classeur "2"
    ET
    si la valeur de la cellule colonne C de mon classeur "1" est égale à la valeur de la cellule colonne C de mon classeur "2"
    alors supprime la ligne de mon classeur "2"

    Merci d'avance

  2. #2
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Bonjour,
    Comme tu n'as pas encore eu de réponse, j'ai soumis le problème à chatGPT.
    Voici sa réponse, ce sera peut-être une piste de recherche.

    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 Supprimer_Lignes()
     
    Dim origine As Workbook
    Dim recherche As Workbook
    Dim ligne As Long
     
    Set origine = Workbooks("1")
    Set recherche = Workbooks("2")
     
    For ligne = recherche.Worksheets("Feuille2").Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
        If origine.Worksheets("Feuille1").Range("B1").Value = recherche.Worksheets("Feuille2").Range("A" & ligne).Value And origine.Worksheets("Feuille1").Range("C1").Value = recherche.Worksheets("Feuille2").Range("C" & ligne).Value Then
            recherche.Worksheets("Feuille2").Rows(ligne).EntireRow.Delete
        End If
    Next
     
    End Sub

  3. #3
    Expert confirmé Avatar de BENNASR
    Homme Profil pro
    Responsable comptable & financier
    Inscrit en
    Décembre 2013
    Messages
    2 974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Responsable comptable & financier
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2013
    Messages : 2 974
    Par défaut
    Bonjour
    à tester avec prudence sur une copie de ton fichier pour munir contre tout risque de perte de données
    Si tu cherche simplement à comparer deux classeur pense à PowerQuery
    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
    17
    18
    19
    20
    21
    22
    Sub test()
    Dim wkA As Workbook, wkB As Workbook
    Dim j As Long
    Dim derlig As Long
    Dim plage As Range
    Dim C As Range
    Application.ScreenUpdating = False
    Set wkA = ThisWorkbook 'ton dossier ouvert class1
    derlig = wkA.Sheets("Feuille1").Range("A" & Rows.Count).End(xlUp).Row ' adapter feuil1 avec le nom de ton onglet ou se trouve tes données
    Workbooks.Open "C:\Users\DELL\Desktop\Class2.xlsm"  ' aller ouvrir l'onglet
    Set wkB = ActiveWorkbook ' la classeur ouvert prends le nom WkB
    wkB.Sheets("Feuille2").Activate
    TblBD1 = wkA.Sheets("Feuille1").Range("A1:C" & wkA.Sheets("Feuille1").Range("A" & Rows.Count).End(xlUp).Row)
    TblBD2 = wkB.Sheets("Feuille2").Range("A1:C" & wkB.Sheets("Feuille2").Range("A" & Rows.Count).End(xlUp).Row)
        For i = 1 To UBound(TblBD1)
        For j = 1 To UBound(TblBD2)
        If TblBD1(i, 2) = TblBD2(j, 1) And TblBD1(i, 3) = TblBD2(j, 3) Then wkB.Sheets("feuille2").Rows(j).EntireRow.Delete
        Next j
        Next i
    wkB.Close True 'fermer le classeur
    Application.ScreenUpdating = True
    End Sub

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2023
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2023
    Messages : 2
    Par défaut
    Merci à tous les deux, c'est vraiment gentil d'avoir passé du temps

    @Franc désolé je n'ai même pas tester la solution de ChatGPT que tu as publiée... je suis un peu septique sur ses compétences là, même si je trouve l'outil super

    @BENNASR si tu l'as fait sans le tester... chapeau bas

  5. #5
    Membre Expert
    Inscrit en
    Décembre 2002
    Messages
    993
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 993
    Par défaut
    Tu as le droit d'être sceptique (je l'étais aussi), mais au moins teste le et tu verras. Moi je l'utilise régulièrement et il me donne souvent la solution en quelques secondes, quel gain de temps! Le tout c'est de bien exposer le problème.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/05/2019, 17h11
  2. Recherche valeur répartie sur une colonne dans un autre onglet
    Par sarnov dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 22/04/2017, 10h50
  3. Réponses: 6
    Dernier message: 28/03/2014, 10h32
  4. Image à cheval sur deux colonnes dans un texte en deux colonnes
    Par cyrius24 dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 15
    Dernier message: 05/09/2007, 15h03
  5. deux colonnes dans une autre
    Par jcachico dans le forum Langage SQL
    Réponses: 3
    Dernier message: 21/08/2007, 09h20

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