Dernière colonne avec valeur dans une ligne

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #21348281
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" 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
isabelle
Le #21348421
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
isabelle
Le #21348411
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
JulieH
Le #21348381
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" 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

michdenis
Le #21348371
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"
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" 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
michdenis
Le #21348531
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
JulieH
Le #21348511
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
michdenis
Le #21348631
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)
JulieH
Le #21348751
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)




michdenis
Le #21348871
Oui oui tu as raison... il y a des matins où c'est plus difficile que d'autres !
;-))
Publicité
Poster une réponse
Anonyme