En VBA Excel, comment trouver la fin d'une feuille ?
8 réponses
jean.paulo
Bonjour.
Dans une routine publiée par Windows News, j'ai deux problèmes :
Comment déterminer la taille d'une feuille (dernière cellule utilisée) en
VBA. La fonction
x..lastcell.. ne semble pas donner celle de la feuille, mais plutot celle
d'un range ?
Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de celle-ci
comporte
un espace (comme 'page (2)').
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jean.paulo
J'ai trouvé sur le Web quelques exemples. Ce n'est pas simple, mais ça doit aller.
Pourtant, une dernière question :
Existe t'il une fonction qui traduise facilement les noms de colonnes (a3) en offset ?
-- Jean.paulo
"jean.paulo" a écrit dans le message de news:
Bonjour.
Dans une routine publiée par Windows News, j'ai deux problèmes :
Comment déterminer la taille d'une feuille (dernière cellule utilisée) en VBA. La fonction x..lastcell.. ne semble pas donner celle de la feuille, mais plutot celle d'un range ?
Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de
celle-ci
comporte un espace (comme 'page (2)').
Merci.
-- Jean.paulo
J'ai trouvé sur le Web quelques exemples. Ce n'est pas simple, mais ça doit
aller.
Pourtant, une dernière question :
Existe t'il une fonction qui traduise facilement les noms de colonnes (a3)
en offset ?
--
Jean.paulo
"jean.paulo" <Jean.paulo.bidon@free.fr> a écrit dans le message de
news:ut7ug5ENGHA.2624@TK2MSFTNGP12.phx.gbl...
Bonjour.
Dans une routine publiée par Windows News, j'ai deux problèmes :
Comment déterminer la taille d'une feuille (dernière cellule utilisée) en
VBA. La fonction
x..lastcell.. ne semble pas donner celle de la feuille, mais plutot celle
d'un range ?
Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de
J'ai trouvé sur le Web quelques exemples. Ce n'est pas simple, mais ça doit aller.
Pourtant, une dernière question :
Existe t'il une fonction qui traduise facilement les noms de colonnes (a3) en offset ?
-- Jean.paulo
"jean.paulo" a écrit dans le message de news:
Bonjour.
Dans une routine publiée par Windows News, j'ai deux problèmes :
Comment déterminer la taille d'une feuille (dernière cellule utilisée) en VBA. La fonction x..lastcell.. ne semble pas donner celle de la feuille, mais plutot celle d'un range ?
Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de
celle-ci
comporte un espace (comme 'page (2)').
Merci.
-- Jean.paulo
electron
Bonjour,
la ligne suivante te permet d'atteindre la dernière cellule utilisée :
Selection.SpecialCells(xlCellTypeLastCell).Select
en espérant que cette information t'aidera ...
"jean.paulo" a écrit :
(dernière cellule utilisée) en VBA. La fonction
Bonjour,
la ligne suivante te permet d'atteindre la dernière cellule utilisée :
Bonsoir, Voici une fonction qui te retourne la plage de la feuille passée en argument :
Sub TestPlageUtilisee() Dim LaPlage As Range 'gère l'erreur de la feuille vide On Error Resume Next Set LaPlage = Plage(ActiveSheet) If Err.Number = 0 Then MsgBox LaPlage.Address End If End Sub
Function Plage(Fe As Worksheet) As Range With Fe Set Plage = .Range(.Cells(1, 1), _ .Cells( _ .Cells.Find("*", .[A1], -4123, , _ 1, 2).Row, _ .Cells.Find("*", .[A1], -4123, , _ 2, 2).Column)) End With End Function
Pour le lien sur une feuille avec espace, , il te faut mettre le nom de la feuille entre apostrophes : ActiveSheet.Hyperlinks.Add [A1], "", "'Feuil 3'!C19"
Hervé.
"jean.paulo" a écrit dans le message de news:
Bonjour.
Dans une routine publiée par Windows News, j'ai deux problèmes :
Comment déterminer la taille d'une feuille (dernière cellule utilisée) en VBA. La fonction x..lastcell.. ne semble pas donner celle de la feuille, mais plutot celle d'un range ?
Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de celle-ci comporte un espace (comme 'page (2)').
Merci.
-- Jean.paulo
Bonsoir,
Voici une fonction qui te retourne la plage de la feuille passée en
argument :
Sub TestPlageUtilisee()
Dim LaPlage As Range
'gère l'erreur de la feuille vide
On Error Resume Next
Set LaPlage = Plage(ActiveSheet)
If Err.Number = 0 Then
MsgBox LaPlage.Address
End If
End Sub
Function Plage(Fe As Worksheet) As Range
With Fe
Set Plage = .Range(.Cells(1, 1), _
.Cells( _
.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, _
.Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
End Function
Pour le lien sur une feuille avec espace, , il te faut mettre le nom de la
feuille entre apostrophes :
ActiveSheet.Hyperlinks.Add [A1], "", "'Feuil 3'!C19"
Hervé.
"jean.paulo" <Jean.paulo.bidon@free.fr> a écrit dans le message de news:
ut7ug5ENGHA.2624@TK2MSFTNGP12.phx.gbl...
Bonjour.
Dans une routine publiée par Windows News, j'ai deux problèmes :
Comment déterminer la taille d'une feuille (dernière cellule utilisée) en
VBA. La fonction
x..lastcell.. ne semble pas donner celle de la feuille, mais plutot celle
d'un range ?
Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de
celle-ci
comporte
un espace (comme 'page (2)').
Bonsoir, Voici une fonction qui te retourne la plage de la feuille passée en argument :
Sub TestPlageUtilisee() Dim LaPlage As Range 'gère l'erreur de la feuille vide On Error Resume Next Set LaPlage = Plage(ActiveSheet) If Err.Number = 0 Then MsgBox LaPlage.Address End If End Sub
Function Plage(Fe As Worksheet) As Range With Fe Set Plage = .Range(.Cells(1, 1), _ .Cells( _ .Cells.Find("*", .[A1], -4123, , _ 1, 2).Row, _ .Cells.Find("*", .[A1], -4123, , _ 2, 2).Column)) End With End Function
Pour le lien sur une feuille avec espace, , il te faut mettre le nom de la feuille entre apostrophes : ActiveSheet.Hyperlinks.Add [A1], "", "'Feuil 3'!C19"
Hervé.
"jean.paulo" a écrit dans le message de news:
Bonjour.
Dans une routine publiée par Windows News, j'ai deux problèmes :
Comment déterminer la taille d'une feuille (dernière cellule utilisée) en VBA. La fonction x..lastcell.. ne semble pas donner celle de la feuille, mais plutot celle d'un range ?
Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de celle-ci comporte un espace (comme 'page (2)').
Merci.
-- Jean.paulo
jean.paulo
Merci.
J'ai utilisé un truc un peu plus sommaire offset = asc(lettre) - asc ("A") avec prise en compte des "AA", etc par multiplication par 27.
Mais il s'avère en fait inutile, car la fonction trouvée pour chercher la dernière cellule (donnée par plusieurs sites, dont MS), retourne en fait un offset et non pas un nom de cellule.
Mais il est curieux qu'il n'existe pas une fonction intégrée pour ces conversions.
Je sais qu'il existe un truc du genre L()+1,C(+2) que je ne retrouve plus
...
Peut-être que les ligne de code ci-dessu t'inspireront.
"jean.paulo" a écrit :
> Existe t'il une fonction qui traduise facilement les noms de colonnes
(a3)
> en offset ?
Merci.
J'ai utilisé un truc un peu plus sommaire offset = asc(lettre) - asc ("A")
avec prise
en compte des "AA", etc par multiplication par 27.
Mais il s'avère en fait inutile, car la fonction trouvée pour chercher la
dernière
cellule (donnée par plusieurs sites, dont MS), retourne en fait un offset
et non pas un nom de cellule.
Mais il est curieux qu'il n'existe pas une fonction intégrée pour ces
conversions.
Jean.paulo
"electron" <electron@discussions.microsoft.com> a écrit dans le message de
news:BE0EB7A0-BE67-4BB3-9169-F434E98D9021@microsoft.com...
J'ai utilisé un truc un peu plus sommaire offset = asc(lettre) - asc ("A") avec prise en compte des "AA", etc par multiplication par 27.
Mais il s'avère en fait inutile, car la fonction trouvée pour chercher la dernière cellule (donnée par plusieurs sites, dont MS), retourne en fait un offset et non pas un nom de cellule.
Mais il est curieux qu'il n'existe pas une fonction intégrée pour ces conversions.
' Finally, initialize a Range object variable for ' the last populated row.
Set LastCell = ws.Cells(LastRow&, LastCol%)
End Function
-- Jean.paulo
"electron" a écrit dans le message de news:
Bonjour,
la ligne suivante te permet d'atteindre la dernière cellule utilisée :
Selection.SpecialCells(xlCellTypeLastCell).Select
en espérant que cette information t'aidera ...
"jean.paulo" a écrit :
> (dernière cellule utilisée) en VBA. La fonction
jean.paulo
Oui, cette fonction est similaire à celle donnée par MS.
Pour les noms avec espaces, j'avais fini par trouver le truc du "'". Mais je bute encore sur le probleme des feuilles purement graphiques, qui ne contiennent pas de cellule "A1"...
Merci. -- Jean.paulo
"Hervé" a écrit dans le message de news:
Bonsoir, Voici une fonction qui te retourne la plage de la feuille passée en argument :
Sub TestPlageUtilisee() Dim LaPlage As Range 'gère l'erreur de la feuille vide On Error Resume Next Set LaPlage = Plage(ActiveSheet) If Err.Number = 0 Then MsgBox LaPlage.Address End If End Sub
Function Plage(Fe As Worksheet) As Range With Fe Set Plage = .Range(.Cells(1, 1), _ .Cells( _ .Cells.Find("*", .[A1], -4123, , _ 1, 2).Row, _ .Cells.Find("*", .[A1], -4123, , _ 2, 2).Column)) End With End Function
Pour le lien sur une feuille avec espace, , il te faut mettre le nom de la feuille entre apostrophes : ActiveSheet.Hyperlinks.Add [A1], "", "'Feuil 3'!C19"
Hervé.
"jean.paulo" a écrit dans le message de news:
> Bonjour. > > Dans une routine publiée par Windows News, j'ai deux problèmes : > > Comment déterminer la taille d'une feuille (dernière cellule utilisée)
en
> VBA. La fonction > x..lastcell.. ne semble pas donner celle de la feuille, mais plutot
celle
> d'un range ? > > Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de > celle-ci > comporte > un espace (comme 'page (2)'). > > Merci. > > -- > Jean.paulo >
Oui, cette fonction est similaire à celle donnée par MS.
Pour les noms avec espaces, j'avais fini par trouver le truc du "'". Mais je
bute
encore sur le probleme des feuilles purement graphiques, qui ne contiennent
pas de cellule "A1"...
Merci.
--
Jean.paulo
"Hervé" <hmsilvePasDePub@wanadoo.fr> a écrit dans le message de
news:OAYaG3KNGHA.1424@TK2MSFTNGP12.phx.gbl...
Bonsoir,
Voici une fonction qui te retourne la plage de la feuille passée en
argument :
Sub TestPlageUtilisee()
Dim LaPlage As Range
'gère l'erreur de la feuille vide
On Error Resume Next
Set LaPlage = Plage(ActiveSheet)
If Err.Number = 0 Then
MsgBox LaPlage.Address
End If
End Sub
Function Plage(Fe As Worksheet) As Range
With Fe
Set Plage = .Range(.Cells(1, 1), _
.Cells( _
.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, _
.Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
End Function
Pour le lien sur une feuille avec espace, , il te faut mettre le nom de la
feuille entre apostrophes :
ActiveSheet.Hyperlinks.Add [A1], "", "'Feuil 3'!C19"
Hervé.
"jean.paulo" <Jean.paulo.bidon@free.fr> a écrit dans le message de news:
ut7ug5ENGHA.2624@TK2MSFTNGP12.phx.gbl...
> Bonjour.
>
> Dans une routine publiée par Windows News, j'ai deux problèmes :
>
> Comment déterminer la taille d'une feuille (dernière cellule utilisée)
en
> VBA. La fonction
> x..lastcell.. ne semble pas donner celle de la feuille, mais plutot
celle
> d'un range ?
>
> Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de
> celle-ci
> comporte
> un espace (comme 'page (2)').
>
> Merci.
>
> --
> Jean.paulo
>
Oui, cette fonction est similaire à celle donnée par MS.
Pour les noms avec espaces, j'avais fini par trouver le truc du "'". Mais je bute encore sur le probleme des feuilles purement graphiques, qui ne contiennent pas de cellule "A1"...
Merci. -- Jean.paulo
"Hervé" a écrit dans le message de news:
Bonsoir, Voici une fonction qui te retourne la plage de la feuille passée en argument :
Sub TestPlageUtilisee() Dim LaPlage As Range 'gère l'erreur de la feuille vide On Error Resume Next Set LaPlage = Plage(ActiveSheet) If Err.Number = 0 Then MsgBox LaPlage.Address End If End Sub
Function Plage(Fe As Worksheet) As Range With Fe Set Plage = .Range(.Cells(1, 1), _ .Cells( _ .Cells.Find("*", .[A1], -4123, , _ 1, 2).Row, _ .Cells.Find("*", .[A1], -4123, , _ 2, 2).Column)) End With End Function
Pour le lien sur une feuille avec espace, , il te faut mettre le nom de la feuille entre apostrophes : ActiveSheet.Hyperlinks.Add [A1], "", "'Feuil 3'!C19"
Hervé.
"jean.paulo" a écrit dans le message de news:
> Bonjour. > > Dans une routine publiée par Windows News, j'ai deux problèmes : > > Comment déterminer la taille d'une feuille (dernière cellule utilisée)
en
> VBA. La fonction > x..lastcell.. ne semble pas donner celle de la feuille, mais plutot
celle
> d'un range ? > > Comment utiliser un lien 'hyperlink' vers une feuille, si le nom de > celle-ci > comporte > un espace (comme 'page (2)'). > > Merci. > > -- > Jean.paulo >