Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Dernière colonne avec valeur dans une ligne

16 réponses
Avatar
JulieH
Bonjour à toutes et tous,

Je cherche à retrouver, pour une ligne donnée, la dernière cellule avec
une valeur.
J'utilise les 3 codes suivants :
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne la
valeur de la cellule.
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne 17.
w = Sheets("Production").Range("IV7").End(xlToLeft).Address
me donne $Q$7.

Je voudrais obtenir "Q". Quelqu'un peut-il m'aider à trouver la solution ?

Merci d'avance

Julie

10 réponses

1 2
Avatar
michdenis
Bonjour,

Ceci te donne la dernière colonne occupée soit
par une donnée ou une formule dans ta feuille de calcul.

Si tu veux obtenir la dernière ligne occupée par une donnée
sans tenir compte de la possibilité d'avoir une formule qui
retourne "" , dans le code proposé modifie XlFormulas par
XlValues

'--------------------------------------
Dim DerCol As Integer
With worksheets("NomDeLaFeuille")
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End With
'--------------------------------------

"JulieH" a écrit dans le message de groupe de
discussion :
Bonjour à toutes et tous,

Je cherche à retrouver, pour une ligne donnée, la dernière cellule avec
une valeur.
J'utilise les 3 codes suivants :
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne la
valeur de la cellule.
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne 17.
w = Sheets("Production").Range("IV7").End(xlToLeft).Address
me donne $Q$7.

Je voudrais obtenir "Q". Quelqu'un peut-il m'aider à trouver la solution ?

Merci d'avance

Julie
Avatar
isabelle
bonjour Julie,

si w = 17
x = Application.Substitute(Cells(1, w).Address(0, 0), "1", "")

isabelle

Le 2010-03-09 08:33, JulieH a écrit :
Bonjour à toutes et tous,

Je cherche à retrouver, pour une ligne donnée, la dernière cellule
avec une valeur.
J'utilise les 3 codes suivants :
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne
la valeur de la cellule.
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne 17.
w =
Sheets("Production").Range("IV7").End(xlToLeft).Address me donne $Q$7.

Je voudrais obtenir "Q". Quelqu'un peut-il m'aider à trouver la
solution ?

Merci d'avance

Julie
Avatar
isabelle
ou un poil plus court,
si w = 17
x = Split(Cells(1, w).Address, "$")
y = x(1)

isabelle

Le 2010-03-09 08:51, isabelle a écrit :
bonjour Julie,

si w = 17
x = Application.Substitute(Cells(1, w).Address(0, 0), "1", "")

isabelle

Le 2010-03-09 08:33, JulieH a écrit :
Bonjour à toutes et tous,

Je cherche à retrouver, pour une ligne donnée, la dernière
cellule avec une valeur.
J'utilise les 3 codes suivants :
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne
la valeur de la cellule.
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne 17.
w =
Sheets("Production").Range("IV7").End(xlToLeft).Address me donne $Q$7.

Je voudrais obtenir "Q". Quelqu'un peut-il m'aider à trouver la
solution ?

Merci d'avance

Julie
Avatar
JulieH
Bonjour et merci pour ton aide,

Cette macro fonctionne bien mais elle ne correspond pas exactement à ce
que je souhaite réaliser :
- Elle me donne un chiffre (17 pour Q) alors que je voudrais la
lettre de la colonne. A moins qu'il n'y ait une technique que je ne
connaisse pas pour utiliser ce chiffre comme variable ensuite ?
- Je ne veux pas la dernière colonne occupée, je veux la dernière
colonne occupée dans la ligne 7.

Julie


michdenis a écrit :
Bonjour,

Ceci te donne la dernière colonne occupée soit
par une donnée ou une formule dans ta feuille de calcul.

Si tu veux obtenir la dernière ligne occupée par une donnée
sans tenir compte de la possibilité d'avoir une formule qui
retourne "" , dans le code proposé modifie XlFormulas par
XlValues

'--------------------------------------
Dim DerCol As Integer
With worksheets("NomDeLaFeuille")
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End With
'--------------------------------------

"JulieH" a écrit dans le message de groupe de
discussion :
Bonjour à toutes et tous,

Je cherche à retrouver, pour une ligne donnée, la dernière cellule avec
une valeur.
J'utilise les 3 codes suivants :
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne la
valeur de la cellule.
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne 17.
w = Sheets("Production").Range("IV7").End(xlToLeft).Address
me donne $Q$7.

Je voudrais obtenir "Q". Quelqu'un peut-il m'aider à trouver la solution ?

Merci d'avance

Julie

Avatar
michdenis
Si c'est sur une ligne en particulier, tu peux adapter la macro
de cette manière.
(je crois que j'ai mal lu ta question)
'------------------------------------
Dim DerCol As Integer, N As Long
N = 5 'Numéro de la ligne
With worksheets("NomDeLaFeuille")
DerCol = .Rows(N).Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End With
'------------------------------------



"michdenis" a écrit dans le message de groupe de discussion :

Bonjour,

Ceci te donne la dernière colonne occupée soit
par une donnée ou une formule dans ta feuille de calcul.

Si tu veux obtenir la dernière ligne occupée par une donnée
sans tenir compte de la possibilité d'avoir une formule qui
retourne "" , dans le code proposé modifie XlFormulas par
XlValues

'--------------------------------------
Dim DerCol As Integer
With worksheets("NomDeLaFeuille")
DerCol = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column
End With
'--------------------------------------

"JulieH" a écrit dans le message de groupe de
discussion :
Bonjour à toutes et tous,

Je cherche à retrouver, pour une ligne donnée, la dernière cellule avec
une valeur.
J'utilise les 3 codes suivants :
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne la
valeur de la cellule.
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne 17.
w = Sheets("Production").Range("IV7").End(xlToLeft).Address
me donne $Q$7.

Je voudrais obtenir "Q". Quelqu'un peut-il m'aider à trouver la solution ?

Merci d'avance

Julie
Avatar
michdenis
Bonjour Isabelle,

Un petit effort que diantre Isabelle...
x =split(Sheets("Production").Range("IV7").End(xlToLeft).Address,"$")(1)
;-))




"isabelle" a écrit dans le message de groupe de discussion :

ou un poil plus court,
si w = 17
x = Split(Cells(1, w).Address, "$")
y = x(1)

isabelle

Le 2010-03-09 08:51, isabelle a écrit :
bonjour Julie,

si w = 17
x = Application.Substitute(Cells(1, w).Address(0, 0), "1", "")

isabelle

Le 2010-03-09 08:33, JulieH a écrit :
Bonjour à toutes et tous,

Je cherche à retrouver, pour une ligne donnée, la dernière
cellule avec une valeur.
J'utilise les 3 codes suivants :
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne
la valeur de la cellule.
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne 17.
w >> Sheets("Production").Range("IV7").End(xlToLeft).Address me donne $Q$7.

Je voudrais obtenir "Q". Quelqu'un peut-il m'aider à trouver la
solution ?

Merci d'avance

Julie
Avatar
JulieH
Bonjour Isabelle,

Merci beaucoup pour cette aide, tout fonctionne parfaitement.

Merci également à michdenis car nos mails se sont croisés.

Julie


isabelle a écrit :
ou un poil plus court,
si w = 17
x = Split(Cells(1, w).Address, "$")
y = x(1)

isabelle

Le 2010-03-09 08:51, isabelle a écrit :
bonjour Julie,

si w = 17
x = Application.Substitute(Cells(1, w).Address(0, 0), "1", "")

isabelle

Le 2010-03-09 08:33, JulieH a écrit :
Bonjour à toutes et tous,

Je cherche à retrouver, pour une ligne donnée, la dernière
cellule avec une valeur.
J'utilise les 3 codes suivants :
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne
la valeur de la cellule.
w = Sheets("Production").Range("IV7").End(xlToLeft) me donne 17.
w =
Sheets("Production").Range("IV7").End(xlToLeft).Address me donne $Q$7.

Je voudrais obtenir "Q". Quelqu'un peut-il m'aider à trouver la
solution ?

Merci d'avance

Julie
Avatar
michdenis
C'était un zéro à la plage du 1. Il doit me manquer un café...;-)

x =split(Sheets("Production").Range("IV7").End(xlToLeft).Address,"$")(0)
Avatar
JulieH
Merci à nouveau, c'est effectivement beaucoup plus "simple".
Chez moi, cela fonctionne avec (1).

Si je peux me permettre de profiter à nouveau de votre aide,
j'ai une autre question dans le même genre :

J'ai un tableau avec par exemple 10 valeurs en colonne A - 15
valeurs en B - 11 valeurs en C ....
Je souhaite retrouver la ligne de la dernière valeur du tableau
qui est dans la colonne B. Evidemment, je ne sais par avance que la
colonne la plus longue est B.

j'ai essayé avec le code suivant mais cela ne me semble pas
fonctionner.
z = Sheets("toto").Range("A" & Rows.Count).End(xlUp).Row

Julie



michdenis a écrit :
C'était un zéro à la plage du 1. Il doit me manquer un café...;-)

x =split(Sheets("Production").Range("IV7").End(xlToLeft).Address,"$")(0)




Avatar
michdenis
Oui oui tu as raison... il y a des matins où c'est plus difficile que d'autres !
;-))
1 2