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 :

[VBA-E] Utilisation de la commande range


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Par défaut [VBA-E] Utilisation de la commande range
    Bonjour j'utilise, pour sélectionner une plage dont le nombre de lignes est relatif, la commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A6:AL" & Range("A65536").End(xlUp).Row).Select
    Cela me permet de sélectionner toutes les lignes d'un tableau, jusqu'à la dernière quelle que soit sa taille.

    Cependant j'ai 2 questions:

    - quel code utiliser pour sélectionner toutes les lignes jusqu'à l'avant dernière?
    - quel code utiliser pour qu'une boite de dialogue me demande de rentrer le n° de la dernière ligne qui doit être contenue dans ma sélection?

    Merci d'avance

    Mattjol

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Avant derniere :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A6:AL" & Range("A65536").End(xlUp).Row - 1).Select
    Pour demander à l'utilisateur de faire une saisie :application.InputBox(...) ou Interaction.InputBox(...), ensuite reste plus qu'a controler que le resultat de cette fonction est bien un nombre. Si l'utilisateur clique sur "Annuler", alors Application.InputBox retourne False, Interaction.InputBox retourne "".

    Une dernière remarque :
    Range("A65536").End(xlUp).Row ne donne que la dernière ligne ayant une valeur (visible ou non voire une formule) dans la colonne A et non pas le derniere ligne utilisée dans la feuille entière. Pour cela, il faut utiliser UsedRange.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set wks = Feuil1
    ligne_1 = wks.UsedRange.Row
    ligne_nb = wks.UsedRange.Rows.Count
    ligne_der = wks.UsedRange.Rows.Count - wks.UsedRange.Row + 1

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 4
    Par défaut
    j'étais sûr d'avoir essayé le Row - 1 et que ça ne marchait pas ...
    bon tant pis, en tout cas ça marche très bien maintenant!

    Pour le application.inputbox, peut tu me dire comment utiliser dans le code cette saisie de l'utilisateur?

    Par exemple que devient le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("A6:AL21").Select
    si ce numéro de ligne 21 est saisi par l'utiliseur?

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    393
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 393
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Do While True
        numero = Interaction.Input("Saisir la derniere ligne de la plage", "Nombre entier positif")
        ' Controle de la valeur saisie
        If Not Isnumeric(replace(numero,".",",",,,vbTextCompare)) Then
            MsgBox "le numero doit être un entier positif"
        Else
            numero = Abs(Fix(numero))
            Exit Do
        End If
    Loop
    Range("A6:AL" & numero).Select

Discussions similaires

  1. [VBA-E] Utiliser le range dans un tab croisé dynamique
    Par GoLDoZ dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/03/2006, 16h12
  2. Retour d'erreur avec l'utilisation de la commande For en VBS
    Par genialk2000 dans le forum VBScript
    Réponses: 3
    Dernier message: 30/03/2005, 18h45
  3. Problème avec l'utilisation de la commande system awk
    Par vbcasimir dans le forum Linux
    Réponses: 3
    Dernier message: 05/10/2004, 16h18
  4. Récupérer un fichier suite à l'utilisation de la commande rm
    Par Kimael dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 02/10/2004, 18h34
  5. [TP][Graphique]Utilisation de la commande Setviewpost
    Par repairman dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 09/07/2003, 13h26

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