A voir également:
- Manipuler les sélections Macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Déplacer une colonne excel - Guide
9 réponses
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 août 2009 à 10:02
19 août 2009 à 10:02
Salut,
Le problème qui se pose à toi n'est pas simple...
Le code pour renvoyer le numéro de la dernière ligne est : Range("A65536").End(xlUp).Row
Or ton tableau est de dimension aléatoire, donc tu ne sais pas si c'est la colonne A la plus longue.
Tu pourrais faire une boucle en testant systématiquement si Range("A65536").End(xlUp).Row < Range("B65536").End(xlUp).Row etc etc mais tu ne connais pas non plus le nombre de colonnes... Je me suis gratté la tête hier la dessus!!! La solution existe, rassure toi. Un code permet d'avoir le nombre de lignes (et ou de colonnes) d'un tableau indépendamment de tout (cellules vides, longueur des colonnes, des lignes). Le voici :
Dim NBlignes As Integer, NBCol As Integer
NBlignes = ActiveSheet.UsedRange.Rows.Count
NBCol = ActiveSheet.UsedRange.Columns.Count
Bon courage
Le problème qui se pose à toi n'est pas simple...
Le code pour renvoyer le numéro de la dernière ligne est : Range("A65536").End(xlUp).Row
Or ton tableau est de dimension aléatoire, donc tu ne sais pas si c'est la colonne A la plus longue.
Tu pourrais faire une boucle en testant systématiquement si Range("A65536").End(xlUp).Row < Range("B65536").End(xlUp).Row etc etc mais tu ne connais pas non plus le nombre de colonnes... Je me suis gratté la tête hier la dessus!!! La solution existe, rassure toi. Un code permet d'avoir le nombre de lignes (et ou de colonnes) d'un tableau indépendamment de tout (cellules vides, longueur des colonnes, des lignes). Le voici :
Dim NBlignes As Integer, NBCol As Integer
NBlignes = ActiveSheet.UsedRange.Rows.Count
NBCol = ActiveSheet.UsedRange.Columns.Count
Bon courage
Ce que tu m'as indiqués ne correspond pas à ce que je recherche, cela me donne bien la dernière ligne mais du fichier total, tout comme NBlignes et NBcol qui m'indique la taille du tableau global.
La sélection que je demande à l'utilisateur s'effectue parmis le plus grand tableau de la page.
Théoriquement la sélection est de 3 colonnes, commençant à la A, mais avec une ligne de départ variable et un nombre de ligne variable.
J'ai réussit à obtenir les coordonnées de la première cellule de la sélection, en haut à gauche, il me faudrait la dernière en bas à droite par exemple.
J'ai pensé aussi récupérer ce qui est affiché dans l'inputbox si c'est possible, par exemple "$A$34:$C$39" . Cela me permettra peut-être de récupérer les numéros...
La sélection que je demande à l'utilisateur s'effectue parmis le plus grand tableau de la page.
Théoriquement la sélection est de 3 colonnes, commençant à la A, mais avec une ligne de départ variable et un nombre de ligne variable.
J'ai réussit à obtenir les coordonnées de la première cellule de la sélection, en haut à gauche, il me faudrait la dernière en bas à droite par exemple.
J'ai pensé aussi récupérer ce qui est affiché dans l'inputbox si c'est possible, par exemple "$A$34:$C$39" . Cela me permettra peut-être de récupérer les numéros...
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 août 2009 à 10:27
19 août 2009 à 10:27
Je ne comprends pas très bien ce que tu veux...
J'ai pensé aussi récupérer ce qui est affiché dans l'inputbox si c'est possible, par exemple "$A$34:$C$39" . C'est le pricipe même de l'inputbox, que l'utilisateur puisse indiquer quelque chose (ici la plage de calcul) au programme.
Cela me permettra peut-être de récupérer les numéros..Le numéros de quoi???
J'ai pensé aussi récupérer ce qui est affiché dans l'inputbox si c'est possible, par exemple "$A$34:$C$39" . C'est le pricipe même de l'inputbox, que l'utilisateur puisse indiquer quelque chose (ici la plage de calcul) au programme.
Cela me permettra peut-être de récupérer les numéros..Le numéros de quoi???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je me suis pas très bien exprimé.
En fait je récupère bien "$A$34:$C$39" , cela correspond à "plage" pour moi.
Ce que je veux en réalité, c'est récupérer la dernière ligne, donc ici "39".
J'ai réussi à récupérer la première "34" par "plage.Row" mais je n'ai rien trouvé pour la dernière, et je ne sais pas très bien manipuler les plages de sélection.
En fait je récupère bien "$A$34:$C$39" , cela correspond à "plage" pour moi.
Ce que je veux en réalité, c'est récupérer la dernière ligne, donc ici "39".
J'ai réussi à récupérer la première "34" par "plage.Row" mais je n'ai rien trouvé pour la dernière, et je ne sais pas très bien manipuler les plages de sélection.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
19 août 2009 à 10:46
19 août 2009 à 10:46
Si tu as juste besoin de récupérer les numéros de 2 lignes : 1ère et dernière ligne d'un Range, tu fais 2 Inputbox :
prelign = InputBox("Merci de saisir le N° de la première ligne de votre plage de cellules","1ère ligne")
derlign = InputBox("Merci de saisir le N° de la dernière ligne de votre plage de cellules","Dernière ligne")
Et voilà.
prelign = InputBox("Merci de saisir le N° de la première ligne de votre plage de cellules","1ère ligne")
derlign = InputBox("Merci de saisir le N° de la dernière ligne de votre plage de cellules","Dernière ligne")
Et voilà.
michel_m
Messages postés
16602
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 313
19 août 2009 à 10:52
19 août 2009 à 10:52
Bonjour, tt le monde
Dim plage As Range
Dim derlig As Long
Set plage = Range("$C$34:$C$39")
derlig = plage.Row + plage.Rows.Count - 1
Dim plage As Range
Dim derlig As Long
Set plage = Range("$C$34:$C$39")
derlig = plage.Row + plage.Rows.Count - 1
C'est ce que j'avais fait au départ :)
Le problème, c'est que j'ai voulu simplifier, vu que ça fesais beaucoup d'inputbox, du coup je me suis dis qu'il doit exister un moyen de récupérer le 2 lignes sans passer par l'utilisateur.
Je vais continuer à chercher, sinon tant pis je ferais comme tu dis.
Le problème, c'est que j'ai voulu simplifier, vu que ça fesais beaucoup d'inputbox, du coup je me suis dis qu'il doit exister un moyen de récupérer le 2 lignes sans passer par l'utilisateur.
Je vais continuer à chercher, sinon tant pis je ferais comme tu dis.