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 :

Problème lors d'une recherche de valeur macro


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 16
    Points
    16
    Par défaut Problème lors d'une recherche de valeur macro
    Bonjour à tous.

    Je suis sur la réalisation d'une macro depuis longtemps et j'ai un dernier soucis que je n'arrive pas à résoudre.

    Le fonctionnement est le suivant :

    Au début on cherche des valeurs qu'on affecte aux variable i et j.
    Je compare ensuite i et j et 3 cas se présente :

    1) i est supérieur ou egal a j, ne rien faire.

    2) i est inférieur à j, chercher la valeur de copier la plage qui va de la valeur de i à la fin du tableau, et la coller dans l'onglet de départ à la suite des valeurs déjà présentes.

    3) Le problème réside en fait ici, car les deux autres cas fonctionne sans celui-ci.
    En fait la variable i ( sa valeur en fait) se trouve dans les deux onglets de mon fichier, je prend la valeur référence ici dans l'onglet 1 et je vais voir si elle se trouve dans le second onglet hors il arrive ( une fois par an!!! mais je suis obligé de prendre en compte ce cas) que la valeur de i ne se trouve pas dans ce second onglet. Dans ce cas précis, je dois prendre toutes les lignes ( la plage entière quoi) de ce second onglet et la coller à la suite des lignes du premier onglet.

    J'espère avoir été clair voici mes deux macro la 1ere essayant d'intégrer le 3ème cas et la 2ème qui fonctionne parfaitement avec les deux cas

    Merci d'avance pour votre aide.

    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
    Dim k As Range, i, l, j As Integer
     
        Sheets("analyse").Select
        Range("A1").End(xlDown).Select
            i = ActiveCell.Value
        Sheets("FI SNCF").Select
        Range("A1").End(xlDown).Select
            j = ActiveCell.Value
       Set k = Range("A1:A" & j).Find(what:=i)
                If i >= j Then
     
                If k Is Nothing Then GoTo Suite
                Sheets("FI SNCF").Select
                Range("A1").Select
                ActiveCell.Offset(0, 1 - ActiveCell.Column).Select
                Range(Selection, Selection.End(xlDown)).EntireRow.Copy
                Sheets("analyse").Select
                Range("A1").End(xlDown).Offset(1, 0).Select
                ActiveSheet.Paste
     
                ElseIf i < j Then
                Sheets("FI SNCF").Select
                k = Cells.Find(what:=i).Select
                ActiveCell.Offset(1, 1 - ActiveCell.Column).Select
                Range(Selection, Selection.End(xlDown)).EntireRow.Copy
                Sheets("analyse").Select
                Range("A1").End(xlDown).Offset(1, 0).Select
                ActiveSheet.Paste
                End If
     
    End Sub
    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
    Dim i, j As Integer
     
        Sheets("analyse").Select
        Range("A1").End(xlDown).Select
            i = ActiveCell.Value
        Sheets("FI SNCF").Select
        Range("A1").End(xlDown).Select
            j = ActiveCell.Value
                If i >= j Then
                End If
                If i < j Then
                Sheets("FI SNCF").Select
                Cells.Find(what:=i, MatchCase:=False).Select
                ActiveCell.Offset(1, 1 - ActiveCell.Column).Select
                Range(Selection, Selection.End(xlDown)).EntireRow.Copy
                Sheets("analyse").Select
                Range("A1").End(xlDown).Offset(1, 0).Select
                ActiveSheet.Paste
                End If
    End Sub

  2. #2
    Membre expérimenté Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Points : 1 512
    Points
    1 512
    Par défaut
    bonjour yayasiano le forum si je comprends code a simplifier
    dans ton code tu utilise xlDown si tu as des cellules vide dans plage pb.. vaut mieux partir du bas a moins que c est le but recherche xlUp

    Option Explicit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
    Dim i As Long, j As Long, c As Range
    i = Sheets("analyse").Range("a65536").End(xlUp).Value
    j = Sheets("FI SNCF").Range("a65536").End(xlUp).Value
    If i >= j Then Exit Sub
    Set c = Sheets("FI SNCF").[A:A].Find(What:=i, LookIn:=xlValues, LookAt:=xlWhole)
    If c Is Nothing Then
    Sheets("FI SNCF").Activate: Range("a1:iv" & Range("a65536").End(xlUp).Row).Copy _
    Destination:=Sheets("analyse").Range("A65536").End(xlUp)(2)
    Else
    Sheets("FI SNCF").Activate: Range(Cells(i + 1, 1), Cells(j, 256)).Copy _
    Destination:=Sheets("analyse").Range("A65536").End(xlUp)(2)
    End If
    End Sub
    SALUTATIONS

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2009
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 22
    Points : 16
    Points
    16
    Par défaut
    Je n'ai pas de cellules vides non mais j'ai résolu mon problème grace a ma macro au dessus merci a vous tous pour vos réponses.

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

Discussions similaires

  1. [MySQL] Problème lors d'une recherche
    Par PowerGel dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 26/04/2012, 11h49
  2. Problème lors q'une comparaison entre 2 valeurs
    Par Xenonmax dans le forum Android
    Réponses: 2
    Dernier message: 15/11/2011, 14h17
  3. [MySQL] Problème avec les accent lors d'une recherche dans ma base de donnée
    Par pierrot10 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 16/06/2009, 14h08
  4. Pourquoi ai-je une erreur lors d'une recherche si la valeur n'existe pas ?
    Par blackndoor dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 17/03/2009, 11h22
  5. Problème d'encodage lors d'une recherche
    Par cysedbs dans le forum Langage
    Réponses: 3
    Dernier message: 05/12/2007, 19h53

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