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 :

VBA - 2 Tableaux trouver cellules commune à chaque tableau


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2019
    Messages : 13
    Par défaut VBA - 2 Tableaux trouver cellules commune à chaque tableau
    Bonjour

    Contexte:
    Feuille(1) 2 colonnes (1 colonne string "O6:O177" et une colonne date "S6:S177").
    Feuille(2) 1 colonne (string A5:A120) et 1 ligne (date "B4:EG4")

    VBA
    Je teste feuille(1).Colonne("O6:O177") feuille(2).colonne("A5:A120")
    if cellule commune trouvée alors je teste
    feuille(1).colonne("S6:S177") avec feuille(2).ligne("B4:EG4")
    if cellule commune trouvée alors (là je bloque totalement) je me place sur l'intersection de la feuille(2) (colonne(A) et Ligne(B:EG)

    Merci de vos retours

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Essayez ceci
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub recherche()
        Dim f1 As Worksheet, f2 As Worksheet
        Dim v As Object, d As Object
        Application.ScreenUpdating = False
        Set f1 = Sheets("feuil1")
        Set f2 = Sheets("feuil2")
     
        For i = 6 To 177
            Val_f1 = f1.Cells(i, "O")
            Date_f1 = f1.Cells(i, "S")
     
            With f2.Range("A5:A120")
                Set v = .Find(Val_f1, LookIn:=xlValues, lookat:=xlWhole)
                If Not v Is Nothing Then
                    Pos1 = v.Address
                    Do
                        Set d = f2.Range("B4:EG4").Find(Date_f1, LookIn:=xlFormulas, lookat:=xlWhole)
                        If Not d Is Nothing Then
                            f2.Select
                            Cells(v.Row, d.Column).Select
                            Exit Sub
                        End If
                        Set v = .FindNext(v)
                    Loop While v <> "" And v.Address <> Pos1
                End If
            End With
        Next i
        Set v = Nothing
        Set d = Nothing
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub
    Cdlt

  3. #3
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2019
    Messages : 13
    Par défaut 2 Tableaux trouver cellules commune à chaque tableau
    Bonjour Arturo83,

    Merci pour cette réponse rapide et efficace, cependant j'ai une
    erreur d'exécution 91 Variable objet ou variable de bloc with non définie
    L'erreur ce produit à cette ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Loop While v <> "" And v.Address <> Pos1
    Merci

  4. #4
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Essayez avec celui_ci
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    Option Explicit
     
    Sub recherche()
        Dim f1 As Worksheet, f2 As Worksheet
        Dim v As Object, d As Object
        Dim i As Long
        Dim Val_f1 As String, Pos1 As String
        Dim Date_f1 As Date
     
        Set f1 = Sheets("Feuil1")
        Set f2 = Sheets("Feuil2")
        For i = 6 To 177
           Val_f1 = f1.Cells(i, "O")
           Date_f1 = f1.Cells(i, "S")
     
           With f2.Range("A5:A120")
               Set v = .Find(Val_f1, LookIn:=xlValues, lookat:=xlWhole)
               If Not v Is Nothing Then
                   Pos1 = v.Address
                   Do
                       Set d = f2.Range("B4:EG4").Find(Date_f1, LookIn:=xlFormulas, lookat:=xlWhole)
                       If Not d Is Nothing Then
                           f2.Select
                           Cells(v.Row, d.Column).Select
                           Exit Sub
                       End If
                       Set v = .FindNext(v)
                   Loop While v Is Nothing And v.Address <> Pos1
               End If
           End With
        Next i
        Set v = Nothing
        Set d = Nothing
        Set f1 = Nothing
        Set f2 = Nothing
    End Sub

  5. #5
    Membre habitué
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2019
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2019
    Messages : 13
    Par défaut
    Bonjour Arturo83

    J'avais déjà intégré...

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    et alors, ça marche ou pas?

Discussions similaires

  1. [VBA-E] Encadrement des cellules d'un tableau
    Par lio62 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 09/06/2017, 10h42
  2. Réponses: 3
    Dernier message: 01/05/2015, 18h44
  3. [Tableaux] trouver taille tableau html en php
    Par eulalie15 dans le forum Langage
    Réponses: 4
    Dernier message: 03/07/2006, 13h47
  4. Réponses: 4
    Dernier message: 29/06/2006, 15h50
  5. [VBA] Problème récup texte d'une cellule dans un tableau
    Par Marco le Pouillot dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 30/01/2006, 17h06

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