Discussion: Identification dernière ligne [XL-2016]

  1. #1
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    décembre 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 164
    Points : 98
    Points
    98

    Par défaut Identification dernière ligne

    Bonjour,

    Je ne trouve pas alors je vous demande un peu d'aide.

    Ce que je fais:
    1/ je travaille un peu mes données dans la sheet FEUILLE1 (on va dire 10 000 lignes)
    2/ j'appliquer un filtre sur ces données (il reste 2 000 lignes)
    3/ je copie ces données filtrées dans une nouvelle sheet FEUILLE2 (on a donc 2000 lignes dans cette nouvelle feuille)
    4/ j'ajoute quelques colonnes dans la FEUILLE2
    5/ j'opère quelques opérations dans cette FEUILLE2

    PB: quand l'opération dans cette FEUILLE2 s'appuie sur la lastrow, le calcul se fait sur les 10 000 lignes.

    L'identification de la last row dans la FEUILLE2 semble du coup erronée.

    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
    Sub AIS_ENG()
     
        lastRow = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
     
        Dim i As Long, Cible As String, VL As Variant, Path As String, filename As String
     
        Sheets("FEUILLE1").Select
     
        ' suite d'instruction dont je vous passe les détails...
     
        ' application d'un tri pour sélectionner certaines données
        Worksheets("FEUILLE1").Range("A:T").AutoFilter Field:=1, Criteria1:="LAST", Operator:=xlFilterValues
     
        ' ajout de la sheet FEUILLE2
        Sheets.Add(After:=Worksheets("FEUILLE1")).Name = "FEUILLE2"
     
        ' copier / coller des données filtrées depuis la sheet FEUILLE1
        Worksheets("FEUILLE1").Range("B:E").SpecialCells(xlCellTypeVisible).Copy
        Worksheets("FEUILLE2").Range("A1").PasteSpecial Paste:=xlPasteValues
        Worksheets("FEUILLE1").AutoFilterMode = False
     
        ' ajout de colonnes supplémentaires dans feuille2
        Sheets("FEUILLE2").Select
        Cells(1, 6).Value = "CODE1"
        Cells(1, 7).Value = "CODE2"
        Cells(1, 10).Value = "DATE"
     
        ' remplissage colonne CODE1
        For i = lastRow To 2 Step -1
        Cells(i, 6) = Mid(Cells(i, 3), 15, 3)
        Next i
     
        ' remplissage colonne CODE2
        VL = Application.IfError(Application.VLookup(Range("A2:A" & lastRow), Sheets("FEUILLE1").Range("B:L"), 11, 0), "")
        Range("G2:G" & lastRow).Value = VL
     
        ' remplissage colonne DATE
        VL = Application.VLookup(Range("A2:A" & lastRow), Sheets("FEUILLE1").Range("B:N"), 13, 0)
        For i = lastRow To 2 Step -1
            If CStr(Cells(i, 1).Value) Like "*V" Then
            Cells(i, 10).Value = VL
            Else
            Cells(i, 10).Value = "Null"
            End If
        Next i
     
    End Sub
    D'avance merci pour votre retour.

    Camzo

  2. #2
    Expert éminent sénior
    Avatar de patricktoulon
    Profil pro
    Inscrit en
    avril 2009
    Messages
    10 670
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : avril 2009
    Messages : 10 670
    Points : 16 991
    Points
    16 991
    Billets dans le blog
    1

    Par défaut re

    re
    de toute les facon il ne peut que y avaoir meprise sur lastrow

    regarde ce que tu fait
    tu fait ca en debut de macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub AIS_ENG()
     
        lastRow = ActiveSheet.Range("A1").SpecialCells(xlCellTypeLastCell).Row
     
    '.......
    alors meme si au depart tu es dans ta feuille2 affichée

    dans ta sub la feuille2 va changer donc ton last row est erroné c'est evident
    ton last row il faut le mettre apres le feuille2.select

    bien que tout tes select sont carrément inutile,on peut faire sans !!!
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : résolu: ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre régulier Avatar de camzo
    Homme Profil pro
    ingénieur en documentation
    Inscrit en
    décembre 2006
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur en documentation
    Secteur : Industrie

    Informations forums :
    Inscription : décembre 2006
    Messages : 164
    Points : 98
    Points
    98

    Par défaut


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

Discussions similaires

  1. [JScrollPane] [JTable] Se placer à la dernière ligne
    Par wishnight dans le forum Tables
    Réponses: 9
    Dernier message: 24/12/2015, 19h42
  2. [JList] rendre visible la dernière ligne ajoutée
    Par Mille sabords dans le forum Listes
    Réponses: 3
    Dernier message: 12/04/2005, 11h32
  3. Réponses: 14
    Dernier message: 30/03/2005, 22h50
  4. Lecture de fichier - dernière ligne non prise en compte
    Par JulienPles dans le forum Général Algorithmique
    Réponses: 3
    Dernier message: 16/03/2005, 12h57
  5. l'identifiant unique de la dernière ligne insérée
    Par dim_italia dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 23/08/2004, 18h55

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