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 :

propriété end d'une feuille de calcul


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut propriété end d'une feuille de calcul
    Lorsque l'on appuie sur CTRL FIN le surseur se positionne sur la dernière cellule de la feuille. Les coordonnées de cette cellule s'obtiennent avec les propriétés rows.count et columns.count de la propriété UsedRange de la feuille.
    Il arrive que cette dernière cellule soit très éloignée de la fin des informations de la feuille suite à des modifications de celle-ci. Ainsi j'ai une feuille dont la dernière ligne est indiquée à 452 alors que toutes les lignes à partir de 150 sont vides.
    Comment indiquer à la feuille que sa UsedRange doit être diminuée ?

    Merci.

  2. #2
    Membre éclairé Avatar de tomy7
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    540
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 540
    Par défaut
    pourquoi ne pas utiliser ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Line = ActiveSheet.Cells(Rows.Count, "V").End(xlUp).Row
    Line est la derniere ligne de la colonne V tu peux adapter a ton code!

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour Patrice Henrio,

    Vous appuyez sur Ctrl et Fin puis vous sélectionnez le N° de la dernière ligne et vous remontez jusqu'à la ligne qui suit la dernière utile.

    Clic droit sur un N° de ligne puis "Supprimer".

    Vous enregistrez le fichier (ce ne sera pas pris en compte si vous n'enregistrez pas).

    Refaites l'essai de Ctrl puis Fin.

    Vous pouvez bien sûr le faire aussi avec une macro.

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut
    Citation Envoyé par jacques_jean Voir le message
    Bonjour Patrice Henrio,

    Vous appuyez sur Ctrl et Fin puis vous sélectionnez le N° de la dernière ligne et vous remontez jusqu'à la ligne qui suit la dernière utile.

    Clic droit sur un N° de ligne puis "Supprimer".

    Vous enregistrez le fichier (ce ne sera pas pris en compte si vous n'enregistrez pas).

    Refaites l'essai de Ctrl puis Fin.

    Vous pouvez bien sûr le faire aussi avec une macro.
    Je vais essayer car effectivement je n'avais pas pensé à enregistrer entre les deux.

    Merci

  5. #5
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    1. tu définis la colonne qui servira de repère pour savoir où s'arrete les informations contenues dans ta feuille, supposons la colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = Cells(Rows.Count, 1).End(xlUp).Row
    2. tu cherches la dernière ligne utilisée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Y = Cells.SpecialCells(xlCellTypeLastCell).Row
    Ensuite à toi de définir si tu veux garder quelques lignes vides entre la fin des infos et la dernière cellule trouvée, si aucune ligne vide entre les deux, on pourrait imaginer un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Y - X > 2 Then Rows(X + 1 & ":" & Y - 1).Delete

  6. #6
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut
    Citation Envoyé par fring Voir le message
    Bonjour,

    1. tu définis la colonne qui servira de repère pour savoir où s'arrete les informations contenues dans ta feuille, supposons la colonne A
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    X = Cells(Rows.Count, 1).End(xlUp).Row
    2. tu cherches la dernière ligne utilisée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Y = Cells.SpecialCells(xlCellTypeLastCell).Row
    Ensuite à toi de définir si tu veux garder quelques lignes vides entre la fin des infos et la dernière cellule trouvée, si aucune ligne vide entre les deux, on pourrait imaginer un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Y - X > 2 Then Rows(X + 1 & ":" & Y - 1).Delete
    Je vais essayer cela aussi qui me parait intéressant.

    Merci

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut
    Désolé de n'avoir pas répondu plus tôt mais j'étais malheureusement très occuppé par d'autres soucis.

    J'ai enfin vérifié la méthode de jacques_jean qui fonctionne parfaitement comme je le souhaitais.

    Le code de fring marche aussi mais il faut rajouter pour que cela soit effectif qu'il faut enregistrer le classeur (ce qui se fait aussi par programmation)

  8. #8
    Membre éclairé

    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 469
    Par défaut
    Citation Envoyé par tomy7 Voir le message
    pourquoi ne pas utiliser ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Line = ActiveSheet.Cells(Rows.Count, "V").End(xlUp).Row
    Line est la derniere ligne de la colonne V tu peux adapter a ton code!
    Je pensais avoir indiqué que je savais comment obtenir la dernière ligne. ce que je veux c'est la changer en une autre.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/12/2011, 09h57
  2. Réponses: 6
    Dernier message: 03/04/2011, 15h10
  3. [VBA-E97]Code pour déprotéger une feuille de calcul
    Par blaiso dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 19/04/2007, 11h30
  4. [VBA-E] Passer d'un contrôle à l'autre avec tab dans une feuille de calculs
    Par small_heart dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/02/2007, 20h57
  5. Contrôles (CheckBox) sur une feuille de calcul
    Par yogyx dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/12/2006, 09h54

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