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 :

garder en mémoire le nombre de lignes


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    responsable unité logisitique
    Inscrit en
    Janvier 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : responsable unité logisitique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2018
    Messages : 4
    Points : 4
    Points
    4
    Par défaut garder en mémoire le nombre de lignes
    Bonjour

    Je but sur un point.
    Je dois à un moment donné connaitre le nombre de lignes de mon tableau afin de pouvoir réutiliser cette valeur plus tard

    J'ai donc fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ligne = ActiveSheet.UsedRange.Rows.Count
    Cependant après ajout de lignes, au moment ou je veux récupérer la valeur de ligne, celle ci a été incrémentée

    Donc ma question comment garder fixe la valeur du nombre de lignes à un moment donné

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 771
    Points : 28 631
    Points
    28 631
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    La ligne que tu affiches n'est pas suffisante pour t'apporter une réponse car tout dépend à quel moment dans ton code tu initialises cette variable ligne
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Candidat au Club
    Homme Profil pro
    responsable unité logisitique
    Inscrit en
    Janvier 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : responsable unité logisitique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2018
    Messages : 4
    Points : 4
    Points
    4
    Par défaut
    Voila le code

    J'aimerais en fait pouvoir reselectionner les dernieres lignes insérées par la boucle while au niveau du 2eme MsgBox (ligne)

    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
    Sub CreationSynthese()
     
    ' determination du nombre de ligne
     
    ligne = ActiveSheet.UsedRange.Rows.Count
     
    MsgBox (ligne)
     
     
    'boucle de recherche
    ChDrive "C"
    ChDir "C:\Users\lascap_ch\desktop\excel\"
    fichier = Dir("C:\Users\lascap_ch\desktop\excel\*.xlsx")
    While Len(fichier) > 0
     ' Ouverture de dossier.xlsx :
    Workbooks.Open fichier
    'copie des cellules
     
    Sheets("Ne pas modifier").Select
        Range("B3:F3").Select
        Selection.Copy
        Windows("recap.xlsm").Activate
        AvantDerniereLigne1 = ActiveSheet.UsedRange.Rows.Count + 1
        Range("B" & AvantDerniereLigne1).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
     
     
    Workbooks(fichier).Save
    Workbooks(fichier).Close
    fichier = Dir
    Wend
     
     
    MsgBox (ligne)
     
    End Sub

  4. #4
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    Usedrange inclut tout ce qui :
    - contient éventuellement des formules
    - contient des cellules formatées
    UsedRange ne permet dopnc pas de déterminer avec assurance la dernière ligne non vide .

    Je vois que ta dernière ligne réelle de données ajoutées est révélée par ce que tu as en colonne B.
    Utilise-la donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    derligneremplie = Range("B" & rows.count).end(xlup).row
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  5. #5
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 771
    Points : 28 631
    Points
    28 631
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne peux qu'abonder dans le sens d'Unparia que je salue.
    Je constate régulièrement que l'on propose la propriété UsedRange de l'objet WorkSheet pour connaître une plage de données alors que si l'on respecte la règle d'or de la gestion des données dans Excel à savoir que doivent être remplie les cellules de la première ligne (étiquette de colonnes) et première colonne, la propriété CurrentRegion de l'objet Range est bien plus sûre.
    J'ajouterais qu'il est encore plus intéressant d'utiliser les tableaux et dans ce cas on peut utiliser la propriété DataBodyRange de l'objet ListObjet.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. [XL-2003] Garder en mémoire un nombre variable de données
    Par neiluj26 dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 16/07/2009, 10h23
  2. [SYBASE] nombre de ligne impactée par UPDATE
    Par metheorn dans le forum Sybase
    Réponses: 3
    Dernier message: 14/05/2004, 16h47
  3. determination le nombre de ligne d'une table
    Par picoti2 dans le forum Bases de données
    Réponses: 2
    Dernier message: 18/03/2004, 09h25
  4. Réponses: 2
    Dernier message: 02/03/2004, 19h38
  5. [TListView] Compter le nombre de lignes
    Par agh dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/09/2002, 20h25

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