Selectionner l'avant dernière cellule
Résolu/Fermé
A voir également:
- La première cellule de l’avant dernière colonne s’appelle :
- Déplacer une colonne excel - Guide
- Aller à la ligne dans une cellule excel - Guide
- Triez cette liste par ordre alphabétique des villes et par note de la meilleure à la moins bonne. quel mot est formé par les 8 premières lettres de la colonne code ? ✓ - Forum Excel
- Colonne word - Guide
- Si cellule contient texte alors ✓ - Forum Excel
6 réponses
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
10 déc. 2009 à 10:03
10 déc. 2009 à 10:03
bonjour,
a = ActiveCell.Offset(0, -1).Value
a = ActiveCell.Offset(0, -1).Value
Raymond PENTIER
Messages postés
58396
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
25 avril 2024
17 094
9 déc. 2009 à 21:46
9 déc. 2009 à 21:46
Bonjour.
De quel logiciel s'agit-il ?
Quel que soit le logiciel, il n'existe aucune formule ou fonction qui fasse ça.
Il faudrait avoir recours à une macro.
De quel logiciel s'agit-il ?
Quel que soit le logiciel, il n'existe aucune formule ou fonction qui fasse ça.
Il faudrait avoir recours à une macro.
eriiic
Messages postés
24570
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
23 avril 2024
7 213
9 déc. 2009 à 22:34
9 déc. 2009 à 22:34
Bonjour tout le monde,
Si si, c'est faisable par formule.
Ramène la valeur de l'avant dernière cellule remplie de la ligne 1 :
=DECALER(A1;0;GRANDE.VALEUR((1:1<>"")*COLONNE(1:1);2)-1)
formule matricielle à valider par shift+ctrl+entrée (le curseur étant dans la zone d'édition des formules)
eric
Si si, c'est faisable par formule.
Ramène la valeur de l'avant dernière cellule remplie de la ligne 1 :
=DECALER(A1;0;GRANDE.VALEUR((1:1<>"")*COLONNE(1:1);2)-1)
formule matricielle à valider par shift+ctrl+entrée (le curseur étant dans la zone d'édition des formules)
eric
Ah oui désolé j'avais oublié de spécifier que je codais en en VBA.
Pour tout expliquer voici ce que je voudrais faire:
J'ai un enchainement de ligne qui ne comportent pas forcement le meme nombre de valeurs, ce que je cherche a faire c'est que quand je clique sur la première cellule non vide d'une ligne (exemple C6) le programme aille chercher la valeur de l'avant dernière cellule non vide de cette ligne (exemple C14), qu'il fasse C6-C14 (nous nommerons cette soustraction x) , qu'il divise x par le nombre de cellules entre C6 et C14 (=y) et qu'ensuite il fasse:
C7 = C6- y
C8 = C7-y
C9 = C8-y et ainsi de suite jusqu'a C14
Bien sur j'ai utilisé un exemple mais je cherche a ecrire un programme général qui s'appliquerait a n'importe quelle ligne et de n'importe quelle taille.
Private Sub CommandButton2_Click()
Dim a, b, c, d As Integer
Voici ce que j'ai commencé a écrire:
Dim a b c d as Integer
ActiveCell.Select
Range(Selection, Selection.End(xlToRight)).Select
a = Selection.Cells.Count - 1
b = ActiveCell.Value
c = ? (valeur de l'avant dernière cellule non vide)
d = (b - c)/a ....
Merci d'avance à ceux qui pourront m'aider !
Pour tout expliquer voici ce que je voudrais faire:
J'ai un enchainement de ligne qui ne comportent pas forcement le meme nombre de valeurs, ce que je cherche a faire c'est que quand je clique sur la première cellule non vide d'une ligne (exemple C6) le programme aille chercher la valeur de l'avant dernière cellule non vide de cette ligne (exemple C14), qu'il fasse C6-C14 (nous nommerons cette soustraction x) , qu'il divise x par le nombre de cellules entre C6 et C14 (=y) et qu'ensuite il fasse:
C7 = C6- y
C8 = C7-y
C9 = C8-y et ainsi de suite jusqu'a C14
Bien sur j'ai utilisé un exemple mais je cherche a ecrire un programme général qui s'appliquerait a n'importe quelle ligne et de n'importe quelle taille.
Private Sub CommandButton2_Click()
Dim a, b, c, d As Integer
Voici ce que j'ai commencé a écrire:
Dim a b c d as Integer
ActiveCell.Select
Range(Selection, Selection.End(xlToRight)).Select
a = Selection.Cells.Count - 1
b = ActiveCell.Value
c = ? (valeur de l'avant dernière cellule non vide)
d = (b - c)/a ....
Merci d'avance à ceux qui pourront m'aider !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 744
10 déc. 2009 à 11:25
10 déc. 2009 à 11:25
Bonjour,
Un petit lien d'abord pour tout ce qui concerne dernière ligne, dernière colonne, nombre de colonnes, de lignes etc... : https://excel.developpez.com/faq/?page=Cellule#DerniereLigneNonVide
Pour avoir l'avant dernière, il faut utiliser effectivement offset(ligne, colonne)
ActiveCell.Offset(-3, 2) "remonte" de 3 lignes et va 2 colonnes à droite de la cellule active
ActiveCell.Offset(0, -1) concerne la cellule située juste à gauche de la cellule active.
L'avant dernière cellule non vide de la 1ère ligne est donc :
AvantDerniereColonne = Range("IV1").End(xlToLeft).Offset(0, -1).Column
L'avant dernière cellule non vide de la 113ère ligne est donc :
AvantDerniereColonne = Range("IV113").End(xlToLeft).Offset(0, -1).Column
Petit détail également :
ActiveCell est la cellule qui est sélectionnée. Inutile donc d'écrire dans le code ActiveCell.Select. Ligne de code inutile et donc à supprimer.
Un petit lien d'abord pour tout ce qui concerne dernière ligne, dernière colonne, nombre de colonnes, de lignes etc... : https://excel.developpez.com/faq/?page=Cellule#DerniereLigneNonVide
Pour avoir l'avant dernière, il faut utiliser effectivement offset(ligne, colonne)
ActiveCell.Offset(-3, 2) "remonte" de 3 lignes et va 2 colonnes à droite de la cellule active
ActiveCell.Offset(0, -1) concerne la cellule située juste à gauche de la cellule active.
L'avant dernière cellule non vide de la 1ère ligne est donc :
AvantDerniereColonne = Range("IV1").End(xlToLeft).Offset(0, -1).Column
L'avant dernière cellule non vide de la 113ère ligne est donc :
AvantDerniereColonne = Range("IV113").End(xlToLeft).Offset(0, -1).Column
Petit détail également :
ActiveCell est la cellule qui est sélectionnée. Inutile donc d'écrire dans le code ActiveCell.Select. Ligne de code inutile et donc à supprimer.