Les Allergies
Alimentaires
Posez votre question Signaler

Selectionner l'avant dernière cellule [Résolu]

Stefzy - Dernière réponse le 10 déc. 2009 à 11:43
Bonjour,
Je souhaiterais créer un programme qui pour une ligne donnée prend la valeur de la première cellule puis celle de l'avant dernière cellule (non vide) et effectue une opération entre les valeurs de ces deux cellules.
Le problème est que je ne connais pas la synthaxe pour désigner l'avant dernière cellule, en clair que dois je ecrire pour affecter la valeur de l'avant dernière cellule non vide de ma ligne A a ma variable x
x=?
Merci beaucoup d'avance
Lire la suite 

Selectionner l'avant dernière cellule »

6 réponses
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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
Ajouter un commentaire
Réponse
+0
moins plus
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 !
Ajouter un commentaire
Réponse
+0
moins plus
bonjour,
a = ActiveCell.Offset(0, -1).Value
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Un petit lien d'abord pour tout ce qui concerne dernière ligne, dernière colonne, nombre de colonnes, de lignes etc... : http://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.
Ajouter un commentaire
Réponse
+0
moins plus
Merci a tous
Le programme tourne !
Ajouter un commentaire
Ce document intitulé « selectionner l'avant dernière cellule » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?