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 :

macro pour imposer d'aller à la dernière ligne d'un tableau Excel avant de l'enregistrer


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut macro pour imposer d'aller à la dernière ligne d'un tableau Excel avant de l'enregistrer
    Bonjour
    Je voudrais savoir si il est possible que lorsque on enregistre un tableau Excel, celui ci aille positionner le curseur à la dernière ligne utilisée (afin qu'elle soit à l'écran), afin que quand il est réouvert, la derniere ligne soit à l'écran (tableau comportant aujourd'hui environ 2400 lignes).
    Merci

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Points : 602
    Points
    602
    Par défaut
    Salut, oui c'est possible mais qu'entends tu par "tableau" ? tableau structuré ? ou simplement tableur dans une feuille excel ?

    Mais de maniere générale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Goto MyCell, Scroll:=True
    MyCell étant un objet de type range, qu'il faut bien évidement remplacer par la cellule voulue, dans ton cas il va falloir la calculer avant mais les méthodes différent selon le "tableau" que tu utilise.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par ChristianBosch Voir le message
    Salut, oui c'est possible mais qu'entends tu par "tableau" ? tableau structuré ? ou simplement tableur dans une feuille excel ?
    merci pour la réponse rapide
    C'est une simple feuille Excel, avec un seul onglet. C'est un fichier chronologique ou chaque ligne correspond à une nouvelle étude, avec un certain nombre d'information dans les colonnes.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2021
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Bonjour si l'objectif est aller à la dernière ligne lors de l'ouverture du fichier (c'est ce que j'ai compris) tu n'as pas besoin d'enregistrer le fichier en te positionnant sur la dernière ligne

    Dans Vba dans le module ThisWorkbook
    Nom : Sans titre.png
Affichages : 92
Taille : 4,9 Ko

    Si tu connais à l'avance le nombre de ligne tu peux mettre le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Workbook_Open()
     
        Sheets("le nom de ta feuille").Cells(numéro de la ligne , numéro de la colonne).Select
     
    End Sub
    Si tu ne connais pas le numéro de ta dernière ligne dans le même module met le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Public lastrow As Long  'nombre de lignes remplies de ta feuille
     
    Private Sub Workbook_Open()
     
        lastrow = Workbooks("le_nom_de_ton_fichier.xlsm").Sheets("le nom de ta feuille").Cells(Rows.Count, numéro de la colonne).End(xlUp).Row
        Sheets("le nom de ta feuille").Cells(lastrow, numéro de la colonne).Select
     
    End Sub
    Avec ces deux codes à chaque ouverture du fichier le curseur excel se positionnera sur la dernière ligne

    En espérant t'avoir aidé

    Louis

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Mars 2021
    Messages
    334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2021
    Messages : 334
    Points : 602
    Points
    602
    Par défaut
    Les .select ne permettent pas de visualiser la dernière ligne mais seulement de sélectionner la dernière cellule.

    Si tu as une plage classique il faut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub visuDerLigne()
    Dim mycell As Range
     
    Set mycell = Feuil1.Cells(Feuil1.Cells(Rows.Count, 1).End(xlUp).Row, 1)
    Application.Goto mycell, Scroll:=True
     
    End Sub
    Feuil1 étant le CodeName de ma feuille ou se trouve le tableau. Cette macro te mets dans le coin supérieur gauche la dernière cellule de ton tableau.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2021
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2021
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par ChristianBosch Voir le message
    Les .select ne permettent pas de visualiser la dernière ligne mais seulement de sélectionner la dernière cellule.

    Si tu as une plage classique il faut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub visuDerLigne()
    Dim mycell As Range
     
    Set mycell = Feuil1.Cells(Feuil1.Cells(Rows.Count, 1).End(xlUp).Row, 1)
    Application.Goto mycell, Scroll:=True
     
    End Sub
    Feuil1 étant le CodeName de ma feuille ou se trouve le tableau. Cette macro te mets dans le coin supérieur gauche la dernière cellule de ton tableau.
    Le .select déplace directement sur la cellule demandé au centre de l'écran il suffit de scroll pour placer la cellule dans le coin supérieur ou de rajouter une ligne de code indiquant de scroll et c'est bon. Cela me semble simple et efficace mais ta solution l'est aussi il n'a plus qu'a l'appliquer dès l'ouverture du fichier

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par ChristianBosch Voir le message
    Les .select ne permettent pas de visualiser la dernière ligne mais seulement de sélectionner la dernière cellule.

    Si tu as une plage classique il faut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub visuDerLigne()
    Dim mycell As Range
     
    Set mycell = Feuil1.Cells(Feuil1.Cells(Rows.Count, 1).End(xlUp).Row, 1)
    Application.Goto mycell, Scroll:=True
     
    End Sub
    Feuil1 étant le CodeName de ma feuille ou se trouve le tableau. Cette macro te mets dans le coin supérieur gauche la dernière cellule de ton tableau.
    Merci beaucoup pour tous ces éléments je vais tester rapidement.

  8. #8
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    j'ai plus simple à te proposer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nb_lig = [B3].End(xlDown).Row
    Cela calcule la dernière saisie que dans la colonne B

    exemple : saisie en B53 : Toto

    nb_lig = 53 même si en D103 il y a une valeur

    Les crochets [ ] c'est pour signifier de commencer la verification à partir de la ligne 3 si la ligne 2 est vide il n'en tient pas compte

    autre solutions

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub Calc_dern_Lig_Col()
       Dim NomF As String
       NomF = "Feuil1"
     
        Der_Lign = ThisWorkbook.Worksheets(NomF).UsedRange.Rows.Count
        Der_Col = ThisWorkbook.Worksheets(NomF).UsedRange.Columns.Count
     
        MsgBox "Ligne : " & Der_Lign  & vbCrLf & "Colonne : " & Der_Col 
     
    End Sub
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

Discussions similaires

  1. Macro pour trier les valeurs jusque dernière ligne.
    Par ginofalaci dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/10/2018, 20h48
  2. Réponses: 1
    Dernier message: 07/05/2014, 13h30
  3. Réponses: 0
    Dernier message: 24/06/2009, 17h44
  4. Tester quelle est la dernière ligne d'un tableau pour la remplir ?
    Par drthodt dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 29/07/2008, 13h26
  5. Aller à la dernière ligne
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 18/06/2008, 10h01

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