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] Find Range


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut [VBA-E] Find Range
    Bonjour à tous,

    Voici un code qui me permet dans un 1er temps de remplir un tableau dans la 1ère colonne vide et dans un 2ème temps de trouver la colonne correspondante lors de la 2ème opération.

    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
    Sub DataExportEn()
     
    Dim Colonne As Byte
    Dim Trouve
     
    With Sheets("Sheet1")
        If UCase(Left(.Range("I2"), 2)) = "AV" Then
            Colonne = Sheet2.Range("IV14").End(xlToLeft).Column + 1
            If Colonne < 4 Then Colonne = 4
                .Range("J2:J4").Copy Sheet2.Cells(14, Colonne)
                .Range("E2").Copy Sheet2.Cells(8, Colonne)
     
        ElseIf UCase(Left(.Range("I2"), 2)) = "AP" Then
            Set Trouve = Sheet2.Range("D8:IV8").Find(.Range("E2"), LookIn:=xlValues)
                If Trouve Is Nothing Then
                MsgBox ("Erreur, impossible de trouver cette valeur")
                Exit Sub
                End If
            .Range("J2:J4").Copy Sheet2.Cells(21, Trouve.Column)
        End If
        Application.DisplayAlerts = False
        Cells.ClearContents
        '.Delete
        Application.DisplayAlerts = True
    End With
     
    End Sub
    Problème:
    Il se peut qu'il y ait deux fois le même nombre dans la ligne 8, je voudrais alors qu'au moment où il faut trouver la correspondance (cas AP), on force son placement en vis-à-vis de celui de gauche et si celui de gauche est déjà "rempli", on l'inscrit dans celui de droite.

    Merci à celui qui pourra m'aider .

    Chewi

  2. #2
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Personne pour m'aider?

    Chewi

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Regarde Offset, dans l'aide.
    En espérant que ça t'aidera
    A+

  4. #4
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Salut ouskel' nord et le forum,

    Je veux bien que je navigue mais là je rame de trop alors je vais mettre ce sujet en délestage et m'y prendre autrement avec ActiveCell.

    Attendez-vous à ce que je revienne sous peu avec un autre post!

    (Offset ne répond pas entièrement à mon problème, il peut faire un décalage mais le problème est aléatoire, je ne sais pas pourquoi une fois excel me trouve celui de gauche et une fois celui de droite, je ne sais donc pas établir de règle fixe avec le OffSet,... la vérité est ailleurs )

    Merci quand même

  5. #5
    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
    Citation Envoyé par Chewi
    alors je vais mettre ce sujet en délestage et m'y prendre autrement avec ActiveCell.
    Dommage...

    Tu étais sur la bonne voie avec la cellule trouve.
    Tu peux d'ailleurs déclarer cette variable en Range.

    Es-tu certain que tu ne t'en sors pas en faisant du pas à pas et vérifier ce qui se passe.

    Le problème est que je n'ai pas compris ton histoire de droite et gauche...
    Et, vu le peu de réponses, je pense ne pas être le seul.

    Une petite reformulation de ton problème nous aiderait, peut-être, à t'aider.

    A toi de voir.
    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!

  6. #6
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Bonjour et merci AlainTech pour ce sujet dont j'allais me séparer par manque d'espoir.

    Pour info, déclarer mon ActiveCell en tant que variable va simplifier mon schmilblick et je vais rester dessus.

    MAIS un minimum de savoir n'étant jamais perdu, je vas répondre à ta question et creuser encore un peu.

    Le "Droite-Gauche" :

    Pendant la 1ère étape (cas AV) des nombres viennent se ranger dans la ligne 8.
    Je peux ainsi avoir sur la ligne 8:
    2 | 3 | 4 | 4 | 5 | 7 | 9 | 11 | 15 | 12 | 12 | 12 | 16 | 17 | 18 ...

    Dans la 2ème étape, mes valeurs doivent se ranger sous les numéros correspondant:
    Si j'ai un 9, mon range vient en dessous du 9 et complète cette colonne
    Si j'ai un 11, idem en dessous du 11

    Donc le problème survient par exemple pour "12"
    Lorsque Excel cherche la valeur 12 dans la ligne 8, il peut aussi bien tomber sur le 1er, le 2ème ou le 3ème.

    Je ne sais vraiment pas pourquoi il ne procède pas toujours de la même façon (tout le temps celui de gauche en 1er par exemple).

    Voilà, j'espère avoir un peu éclairci le problème.

    J'avoue que ce n'est pas super clair.

    Merci

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Faut pas délester comme ça
    Lequel veux-tu ? Le premier, le dernier ?
    As-tu vu qu'on peut procéder à une recherche par ligne ou par colonne ?
    En l'occurence, je ferais une recherche par ligne sur la ligne 8 exclusivement.
    Ensuite, si tu n'obtiens pas ce que tu veux, ou pour être certain d'être dans la bonne colonne, je vérifierais le contenu de Colonne - 1 jusqu'à ce que le contenu change pour avoir le premier nombre d'une série, ou de Colonne + 1 jusqu'à ce que le contenu change pour avoir le dernier nombre d'une série.
    Comme dit AlainTech, tu n'es pas loin et ce serait dommage de laisser tomber
    A+

Discussions similaires

  1. [VBA-E] Find et une partie d'une Date
    Par Coplan dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/07/2006, 14h58
  2. [VBA-E] Probleme range
    Par lolo_bob2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/06/2006, 16h46
  3. [VBA-E97]recuperer range zone print
    Par cada01a dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/03/2006, 14h49
  4. [VBA-E]Fonction Range
    Par LE MEAUX dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/02/2006, 07h50
  5. Réponses: 4
    Dernier message: 20/01/2006, 15h53

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