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-E] Exploitation de références


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut [VBA-E] Exploitation de références
    Bonjour,

    Après un début de code bien laborieux j'ai réussi à extraire les références des cellules qui m'intéressaient...

    Celles-ci se présentent de la sorte :
    $B$2,$B$6:$B$8

    Donc les résultats qui m'intéressent se trouvent dans les cellules B2, B6, B7 et B8.

    Ma question aujourd'hui est de savoir comment rapatrier les données concernées en partant directement de mon résultat $B$2,$B$6:$B$8, en insérant à chaque fois une ligne...

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Si tu nous montrais ton code (même laborieux), on pourrait, peut-être, t'aider.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Voici le code :
    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    Sub SelCell()
     
    'Récupère les coordonnées des Cellules de la base de données
    'Et les scinde
     
    Dim objCell As Range, PremAdresse As String, PlageResult As Range, SelSerie
    Dim I As Long, PlageSerie As Range
     
    Range("e2", Range("e2").EntireColumn.Find(what:="*", searchdirection:=xlPrevious)).Select
    Selection.Name = "SelSerie"
    SelRes = Range("SelSerie").Offset(0, 1).Select
    Selection.Name = "SelRes"
     
    Set PlageSerie = Range("SelSerie")
     
     For I = 1 To PlageSerie.Cells.Count
     
    Suite:
        NumSerie = Range("SelSerie")(I)
        If IsEmpty(NumSerie) Then
        I = I + 1
        GoTo Suite
        End If
        Set PlageResult = Nothing
     SelDesi = Range("b2", Range("b2").EntireColumn.Find(what:="*", searchdirection:=xlPrevious)).Select
    'selectionne la plage de données concernées
     
            With Selection
     
            Set objCell = .Find(what:=NumSerie, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, searchdirection:=xlNext)
            If Not objCell Is Nothing Then
                Set PlageResult = Nothing
                PremAdresse = objCell.Address
                Do
                    If PlageResult Is Nothing Then
                        Set PlageResult = objCell
                    Else
                        Set PlageResult = Application.Union(objCell, PlageResult)
                    End If
                    Set objCell = .FindNext(objCell)
                Loop While Not objCell Is Nothing And objCell.Address <> PremAdresse
            End If
            End With
     
            If PlageResult Is Nothing Then
                Range("SelRes")(I) = "numéro de série non trouvé"
            Else
                Range("SelRes")(I) = PlageResult.Address
            End If
     
     
        Next I
    End Sub
    Le but de ce code est de comparer des suites de caractères entre elles et d'en extraire les références.
    Ca j'ai réussi, celles ci s'affichent bien.
    Cependant je souhaite utiliser ces références pour afficher leur contenu dans une feuille annexe, qui me permettra de valider manuellement la pertinence des correspondances obtenues avec la macro.

  4. #4
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Bon, je n'ai pas lu le code que tu as donné, mais d'après ton premier post, tu pourrais essayer de faire un truc du genre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim MaCellule As Range
    For Each MaCellule In Range("B6:B8)
       'Tu fais ce que tu veux avec "MaCellule.Value"
    Next MaCellule

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Essai réalisé mais je n'obtiens pas le résultat que je recherche.

    Dans la cellule en question j'ai des références à d'autres cellules.
    Celles ci s'affichent de cette manière :
    $B$2,$B$6:$B8

    Ce qui signifie que des correspondances ont été trouvées dans les cellules b2, et dans la plage b6 b8.

    Hors il s'agit de comparaisons effectuées automatiquement.
    Je cherche à valider ces comparaisons manuellement. Pour cela je dois connaitre d'autres éléments.
    Ces éléments se trouvent dans les cellules sitées plus haut.

    Mais prenons un exemple plus concret :

    Dans un fichier j'ai une PRESSE qui a 123a comme numéro de série, mais j'ai également une SCIE référencée au n° de série suivant : abj123.
    Dans un autre fichier j'ai une PRESSE avec le numéro de série 123.

    Avec ma macro j'obtiens les deux correspondances sous forme de référence de cellule.

    D'ou ma question : une référence de cellule n'aidera pas l'utilisateur à voir s'il s'agit bien d'une presse ou d'une scie. C'est pourquoi je souhaite utiliser ces références pour extraire de mes fichiers les données correspondantes.

    En espérant avoir été un peu plus clair.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 12
    Par défaut
    Voici après quelques recherches le début du code que j'insère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                    If PlageResult Is Nothing Then
                        Set PlageResult = objCell
                    Else
                        Set PlageResult = Application.Union(objCell, PlageResult)
                    End If
     
      |             Sheets("Feuil2").Select
      |             Range("F2").Offset(J, 0) = objCell.Value
      |             J = J + 1
      |             Sheets("Feuil1").Select      
     
                    Set objCell = .FindNext(objCell)

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

Discussions similaires

  1. [AC-2002] Executer un SELECT en VBA et exploiter les données
    Par Zuthos dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/08/2012, 17h27
  2. [VBA] Ajouter dynamiquement une référence
    Par jpharand dans le forum VBA Access
    Réponses: 23
    Dernier message: 16/04/2010, 23h28
  3. [VBA-Version]Probleme avec références VB
    Par macgiver dans le forum VBA Access
    Réponses: 3
    Dernier message: 31/03/2007, 00h19
  4. [VBA-E] Problème de références
    Par Elstak dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 13/07/2006, 09h04
  5. Réponses: 7
    Dernier message: 09/11/2005, 14h37

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