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 :

Récuperer le N° de la ligne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2012
    Messages : 29
    Par défaut Récuperer le N° de la ligne
    Bonjour
    j'ai un tableau dans une feuille qui admet les donnée et un tableau dans une autre feuille qui va trier les donnée!
    Aprés avoir verifier des conditions,je voulais trier les données d'une colonne, j'ai créer un macro qui va verifier les conditions mais mon probléme c'est d'identifier le numéro de la ligne qui verifie ces conditions, grace à ce numéro de la ligne je peu trier les données de la colonne.
    Voici mon 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
    Sub Tempdetraitement()
     
    'enlever le calcul automatique d'Excel
    Application.Calculation = xlCalculationManual
     
    ' désactication du rafraichissement de l'écran pendant la macro
    Application.ScreenUpdating = False
     
    Dim m As Integer
    Dim n As Integer
    Dim x As Integer
    m = 0
     
    n = 11
    While Sheets("ANALYSIS").Cells(n, 1).Value <> "F"
    m = m + 1
    n = n + 1
    Wend
     
    Dim j As Integer
    m = m + 11
    For k = 11 To m
    For j = 2 To Sheets("ANALYSIS").Cells(7, 5).Value
    If Sheets("ANALYSIS").Cells(2, 5).Value = Sheets("DATA").Cells(j, 53).Value And Sheets("ANALYSIS").Cells(5, 5).Value = Sheets("DATA").Cells(j, 54) And Sheets("ANALYSIS").Cells(6, 5).Value = Sheets("DATA").Cells(j, 51) And Sheets("ANALYSIS").Cells(11, 2).Value = Sheets("DATA").Cells(j, 34) Then
    x = j
    j = j + 1
    End If
    Sheets("ANALYSIS").Cells(k, 18).Value = Sheets("DATA").Cells(x, 48).Value
    k = k + 1
    Next
     
    Next
    'remettre le calcul automatique
    Application.Calculation = xlCalculationAutomatic
     
    'rafraichissement de l'écran pendant la macro
    Application.ScreenUpdating = True
     
     
    End Sub

  2. #2
    Membre chevronné Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    352
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 352
    Par défaut
    Bonsoir maymou27,

    Un conseil, indentes ton code (décalage des paragraphes pour faciliter la lecture).

    A première vue, il te faut rajouter quelques .Value :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For k = 11 To m
        For j = 2 To Sheets("ANALYSIS").Cells(7, 5).Value
            If Sheets("ANALYSIS").Cells(2, 5).Value = Sheets("DATA").Cells(j, 53).Value And Sheets("ANALYSIS").Cells(5, 5).Value = Sheets("DATA").Cells(j, 54).Value And Sheets("ANALYSIS").Cells(6, 5).Value = Sheets("DATA").Cells(j, 51).Value And Sheets("ANALYSIS").Cells(11, 2).Value = Sheets("DATA").Cells(j, 34).Value Then
                x = j
                j = j + 1
            End If
            Sheets("ANALYSIS").Cells(k, 18).Value = Sheets("DATA").Cells(x, 48).Value
            k = k + 1
        Next
    Next
    Dans ton code ci dessus, j'ai compris qu'il faut que les 4 conditions soient vraies pour incrémenter j et modifier la valeur de x :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sheets("ANALYSIS").Cells(2, 5).Value = Sheets("DATA").Cells(j, 53).Value
    Sheets("ANALYSIS").Cells(5, 5).Value = Sheets("DATA").Cells(j, 54).Value
    Sheets("ANALYSIS").Cells(6, 5).Value = Sheets("DATA").Cells(j, 51).Value
    Sheets("ANALYSIS").Cells(11, 2).Value = Sheets("DATA").Cells(j, 34).Value
    Remarque 1 : Ce qui signifie que si la boucle IF ne s'applique pas, x reste le même et tu dupliques les résultats avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("ANALYSIS").Cells(k, 18).Value = Sheets("DATA").Cells(x, 48).Value
    Remarque 2 : tu incrémentes deux fois ton k à travers ton FOR NEXT et k=k+1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    For k = 11 To m
        For j = 2 To Sheets("ANALYSIS").Cells(7, 5).Value
        ...
            k = k + 1
        Next
    Next
    Remarque 3 : il y a quoi dans Sheets("ANALYSIS").Cells(7, 5).Value ?

    Si tu peux nous joindre un classeur en exemple ?

    Bertrand

Discussions similaires

  1. récuperer le reste de la ligne max
    Par manrabie dans le forum SQL
    Réponses: 2
    Dernier message: 28/07/2009, 10h26
  2. Récuperer la sortie d'une ligne de commande
    Par rambc dans le forum Interfaçage autre langage
    Réponses: 6
    Dernier message: 21/05/2009, 16h33
  3. comment récuperer la valeur d'une ligne avec un datagridview
    Par moha1984 dans le forum Windows Forms
    Réponses: 14
    Dernier message: 08/08/2008, 12h10
  4. Récuperer des informations dans une ligne
    Par Au2laDeNosReves dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 15/04/2008, 12h22
  5. récuperer un mot dans une ligne sous C#
    Par ouadie99 dans le forum C#
    Réponses: 2
    Dernier message: 07/01/2008, 17h25

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