Pour sélectionner la plage de la première
cellule non vide de la colonne A à la dernière
cellule non vide de la même colonne, on utilise
xlUp et xlDown. Il arrive cependant que ça
ne donne pas le bon résultat.
J'ai donc utilisé cette macro pour tout prévoir!
Qu'en pensez-vous et avez-vous d'autres suggestions ?
Sub Sélectionne()
Dim bas As Range, haut As Range
If Application.CountA([a:a]) = 0 Then
MsgBox "Aucune donnée dans la colonne A."
Exit Sub
End If
If [a65536] = "" Then Set bas = [a65536].End(xlUp) Else Set bas = [a65536]
If [a1] = "" Then Set haut = [a1].End(xlDown) Else Set haut = [a1]
Range(haut, bas).Select
End Sub
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
perso
Bonsoir Serge,
On peut aussi de prévoir un peu plus,
En ces moments de changements possibles de versions, on pourrait ajouter un test sur la version, car 2007 possède bien plus de cellules que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui ajoute quelques tests + vérifie la version d'excel pour gérer le nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un Range("CeQueTuVeux").select au début pour forcer une colonne particulière, c'est donc un peu plus flexible et ré-utilisable J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour fonctionner sur la colonne de la cellule active. Dim haut As Range, bas As Range Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536 If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column) Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown) If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then '1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur ActiveCell.Select MsgBox "Aucune donnée dans la colonne " & Mid(ActiveCell.Address, 2, 1) Else Range(haut, bas).Select End If
End Sub
Testé sur 2003 & 2007 pour ton info
Qu'en penses tu ?
Pat REDNEF
Bonsoir Serge,
On peut aussi de prévoir un peu plus,
En ces moments de changements possibles de versions, on pourrait
ajouter un test sur la version, car 2007 possède bien plus de cellules
que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui
ajoute quelques tests + vérifie la version d'excel pour gérer le
nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un
Range("CeQueTuVeux").select au début pour forcer une colonne
particulière,
c'est donc un peu plus flexible et ré-utilisable
J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour
fonctionner sur la colonne de la cellule active.
Dim haut As Range, bas As Range
Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536
If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column)
Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown)
If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then
'1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur
ActiveCell.Select
MsgBox "Aucune donnée dans la colonne " &
Mid(ActiveCell.Address, 2, 1)
Else
Range(haut, bas).Select
End If
En ces moments de changements possibles de versions, on pourrait ajouter un test sur la version, car 2007 possède bien plus de cellules que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui ajoute quelques tests + vérifie la version d'excel pour gérer le nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un Range("CeQueTuVeux").select au début pour forcer une colonne particulière, c'est donc un peu plus flexible et ré-utilisable J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour fonctionner sur la colonne de la cellule active. Dim haut As Range, bas As Range Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536 If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column) Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown) If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then '1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur ActiveCell.Select MsgBox "Aucune donnée dans la colonne " & Mid(ActiveCell.Address, 2, 1) Else Range(haut, bas).Select End If
End Sub
Testé sur 2003 & 2007 pour ton info
Qu'en penses tu ?
Pat REDNEF
Tatanka
Salut Pat,
C'est effectivement beaucoup plus souple et ça me semble impeccable. Les concepteurs d'Excel auraient pu définir xlUp et xlDown sans que l'on soit obligé de faire de telles contorsions, non ?
Serge
a écrit dans le message de news: Bonsoir Serge,
On peut aussi de prévoir un peu plus,
En ces moments de changements possibles de versions, on pourrait ajouter un test sur la version, car 2007 possède bien plus de cellules que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui ajoute quelques tests + vérifie la version d'excel pour gérer le nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un Range("CeQueTuVeux").select au début pour forcer une colonne particulière, c'est donc un peu plus flexible et ré-utilisable J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour fonctionner sur la colonne de la cellule active. Dim haut As Range, bas As Range Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536 If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column) Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown) If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then '1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur ActiveCell.Select MsgBox "Aucune donnée dans la colonne " & Mid(ActiveCell.Address, 2, 1) Else Range(haut, bas).Select End If
End Sub
Testé sur 2003 & 2007 pour ton info
Qu'en penses tu ?
Pat REDNEF
Salut Pat,
C'est effectivement beaucoup plus souple et ça me semble impeccable.
Les concepteurs d'Excel auraient pu définir xlUp et xlDown sans que l'on
soit obligé de faire de telles contorsions, non ?
Serge
<perso@patrickjacquart.fr> a écrit dans le message de news: 1194118755.006816.140170@o80g2000hse.googlegroups.com...
Bonsoir Serge,
On peut aussi de prévoir un peu plus,
En ces moments de changements possibles de versions, on pourrait
ajouter un test sur la version, car 2007 possède bien plus de cellules
que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui
ajoute quelques tests + vérifie la version d'excel pour gérer le
nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un
Range("CeQueTuVeux").select au début pour forcer une colonne
particulière,
c'est donc un peu plus flexible et ré-utilisable
J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour
fonctionner sur la colonne de la cellule active.
Dim haut As Range, bas As Range
Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536
If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column)
Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown)
If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then
'1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur
ActiveCell.Select
MsgBox "Aucune donnée dans la colonne " &
Mid(ActiveCell.Address, 2, 1)
Else
Range(haut, bas).Select
End If
C'est effectivement beaucoup plus souple et ça me semble impeccable. Les concepteurs d'Excel auraient pu définir xlUp et xlDown sans que l'on soit obligé de faire de telles contorsions, non ?
Serge
a écrit dans le message de news: Bonsoir Serge,
On peut aussi de prévoir un peu plus,
En ces moments de changements possibles de versions, on pourrait ajouter un test sur la version, car 2007 possède bien plus de cellules que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui ajoute quelques tests + vérifie la version d'excel pour gérer le nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un Range("CeQueTuVeux").select au début pour forcer une colonne particulière, c'est donc un peu plus flexible et ré-utilisable J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour fonctionner sur la colonne de la cellule active. Dim haut As Range, bas As Range Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536 If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column) Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown) If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then '1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur ActiveCell.Select MsgBox "Aucune donnée dans la colonne " & Mid(ActiveCell.Address, 2, 1) Else Range(haut, bas).Select End If
End Sub
Testé sur 2003 & 2007 pour ton info
Qu'en penses tu ?
Pat REDNEF
Tatanka
Oups! Petite erreur dans ta macro pour trouver le nom de la colonne.
Une suggestion :
Sub Colonne() ad = ActiveCell.Address(0, 0) For i = 1 To Len(ad) v = Mid(ad, i, 1) If Not IsNumeric(v) Then c = c & v Next i MsgBox "Colonne active : " & c End Sub
Serge
"Tatanka" a écrit dans le message de news:
Salut Pat,
C'est effectivement beaucoup plus souple et ça me semble impeccable. Les concepteurs d'Excel auraient pu définir xlUp et xlDown sans que l'on soit obligé de faire de telles contorsions, non ?
Serge
a écrit dans le message de news: Bonsoir Serge,
On peut aussi de prévoir un peu plus,
En ces moments de changements possibles de versions, on pourrait ajouter un test sur la version, car 2007 possède bien plus de cellules que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui ajoute quelques tests + vérifie la version d'excel pour gérer le nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un Range("CeQueTuVeux").select au début pour forcer une colonne particulière, c'est donc un peu plus flexible et ré-utilisable J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour fonctionner sur la colonne de la cellule active. Dim haut As Range, bas As Range Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536 If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column) Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown) If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then '1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur ActiveCell.Select MsgBox "Aucune donnée dans la colonne " & Mid(ActiveCell.Address, 2, 1) Else Range(haut, bas).Select End If
End Sub
Testé sur 2003 & 2007 pour ton info
Qu'en penses tu ?
Pat REDNEF
Oups! Petite erreur dans ta macro pour trouver le nom de la colonne.
Une suggestion :
Sub Colonne()
ad = ActiveCell.Address(0, 0)
For i = 1 To Len(ad)
v = Mid(ad, i, 1)
If Not IsNumeric(v) Then c = c & v
Next i
MsgBox "Colonne active : " & c
End Sub
Serge
"Tatanka" <garnote3@ENLEVER.videotron.ca> a écrit dans le message de news: eFWF1llHIHA.5360@TK2MSFTNGP03.phx.gbl...
Salut Pat,
C'est effectivement beaucoup plus souple et ça me semble impeccable.
Les concepteurs d'Excel auraient pu définir xlUp et xlDown sans que l'on
soit obligé de faire de telles contorsions, non ?
Serge
<perso@patrickjacquart.fr> a écrit dans le message de news: 1194118755.006816.140170@o80g2000hse.googlegroups.com...
Bonsoir Serge,
On peut aussi de prévoir un peu plus,
En ces moments de changements possibles de versions, on pourrait
ajouter un test sur la version, car 2007 possède bien plus de cellules
que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui
ajoute quelques tests + vérifie la version d'excel pour gérer le
nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un
Range("CeQueTuVeux").select au début pour forcer une colonne
particulière,
c'est donc un peu plus flexible et ré-utilisable
J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour
fonctionner sur la colonne de la cellule active.
Dim haut As Range, bas As Range
Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536
If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column)
Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown)
If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then
'1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur
ActiveCell.Select
MsgBox "Aucune donnée dans la colonne " &
Mid(ActiveCell.Address, 2, 1)
Else
Range(haut, bas).Select
End If
Oups! Petite erreur dans ta macro pour trouver le nom de la colonne.
Une suggestion :
Sub Colonne() ad = ActiveCell.Address(0, 0) For i = 1 To Len(ad) v = Mid(ad, i, 1) If Not IsNumeric(v) Then c = c & v Next i MsgBox "Colonne active : " & c End Sub
Serge
"Tatanka" a écrit dans le message de news:
Salut Pat,
C'est effectivement beaucoup plus souple et ça me semble impeccable. Les concepteurs d'Excel auraient pu définir xlUp et xlDown sans que l'on soit obligé de faire de telles contorsions, non ?
Serge
a écrit dans le message de news: Bonsoir Serge,
On peut aussi de prévoir un peu plus,
En ces moments de changements possibles de versions, on pourrait ajouter un test sur la version, car 2007 possède bien plus de cellules que 2003 ou avant......
j'ai fait une petite macro qui prend ta demande en compte et qui ajoute quelques tests + vérifie la version d'excel pour gérer le nombre de cellules dans la colonne
La macro fonctionne sur la colonne active, mais tu faire un Range("CeQueTuVeux").select au début pour forcer une colonne particulière, c'est donc un peu plus flexible et ré-utilisable J'ai gardé tes variables haut & bas....
Voici le code:
Sub SelectionneToutPrévoir() 'Fait pour fonctionner sur la colonne de la cellule active. Dim haut As Range, bas As Range Dim Ver As Long, CelluleFin As Long
CelluleFin = 65536 If Application.Version = "12.0" Then CelluleFin = 1048576
Set haut = Cells(1, ActiveCell.Column) Set bas = Cells(CelluleFin, ActiveCell.Column)
If IsEmpty(haut) Then Set haut = haut.End(xlDown) If IsEmpty(bas) Then Set bas = bas.End(xlUp)
If haut.Row = CelluleFin And bas.Row = 1 Then '1048576 pour Excel 2007 ou 65536 pour Excel 2003 ou inférieur ActiveCell.Select MsgBox "Aucune donnée dans la colonne " & Mid(ActiveCell.Address, 2, 1) Else Range(haut, bas).Select End If
AMC , les procs ci-dessous fonctionnent pour toutes les versions d'Excel supérieures ou égales à 2000 ( à cause de Split) et permet de trouver pour toutes les plages de cellules les informations de position de dernière ligne et de dernière colonne. Cette utilisation de Find pour cette affaire fait partie des grands classiques que tu peux trouver sur de multiples sites. Attention, si il n'y a pas de dernière ligne ou de dernière colonne , les fonctions ci-dessus renvoient 0 ou rien. Tu peux perfectionner la chose en les forçant à renvoyer autre chose.
Public Function Lastrow(rng As Range) As Long
Dim rngtemp As Range
If rng.Areas.Count > 1 Then MsgBox " pas possible sur zones non contigues": Exit Function
Set rngtemp = rng.Find("*", rng.Range("A1"), xlFormulas, xlPart, xlByRows, xlPrevious)
If Not rngtemp Is Nothing Then Lastrow = rngtemp.Row
End Function
Public Function Lastcolumn(rng As Range, Numcol As string) As Variant
Dim rngtemp As Range
If rng.Areas.Count > 1 Then MsgBox " pas possible sur zones non contigues": Exit Function
Set rngtemp = rng.Find("*", rng.Range("A1"), xlFormulas, xlPart, xlColumns, xlPrevious)
If Not rngtemp Is Nothing Then If Numcol = "Yes" Then Lastcolumn = rngtemp.Column Else Lastcolumn = Split(Cells(1, rngtemp.Column).Address, "$")(1) End If End If
End Function
A+
Bonjour,
Pour sélectionner la plage de la première cellule non vide de la colonne A à la dernière cellule non vide de la même colonne, on utilise xlUp et xlDown. Il arrive cependant que ça ne donne pas le bon résultat. J'ai donc utilisé cette macro pour tout prévoir! Qu'en pensez-vous et avez-vous d'autres suggestions ?
Sub Sélectionne() Dim bas As Range, haut As Range If Application.CountA([a:a]) = 0 Then MsgBox "Aucune donnée dans la colonne A." Exit Sub End If If [a65536] = "" Then Set bas = [a65536].End(xlUp) Else Set bas = [a65536] If [a1] = "" Then Set haut = [a1].End(xlDown) Else Set haut = [a1] Range(haut, bas).Select End Sub
Serge
Bonjour,
AMC , les procs ci-dessous fonctionnent pour toutes les versions d'Excel
supérieures ou égales à 2000 ( à cause de Split) et permet de trouver
pour toutes les plages de cellules les informations de position de
dernière ligne et de dernière colonne.
Cette utilisation de Find pour cette affaire fait partie des grands
classiques que tu peux trouver sur de multiples sites.
Attention, si il n'y a pas de dernière ligne ou de dernière colonne ,
les fonctions ci-dessus renvoient 0 ou rien. Tu peux perfectionner la
chose en les forçant à renvoyer autre chose.
Public Function Lastrow(rng As Range) As Long
Dim rngtemp As Range
If rng.Areas.Count > 1 Then MsgBox " pas possible sur zones non
contigues": Exit Function
Set rngtemp = rng.Find("*", rng.Range("A1"), xlFormulas, xlPart,
xlByRows, xlPrevious)
If Not rngtemp Is Nothing Then Lastrow = rngtemp.Row
End Function
Public Function Lastcolumn(rng As Range, Numcol As string) As Variant
Dim rngtemp As Range
If rng.Areas.Count > 1 Then MsgBox " pas possible sur zones non
contigues": Exit Function
Set rngtemp = rng.Find("*", rng.Range("A1"), xlFormulas, xlPart,
xlColumns, xlPrevious)
If Not rngtemp Is Nothing Then
If Numcol = "Yes" Then
Lastcolumn = rngtemp.Column
Else
Lastcolumn = Split(Cells(1, rngtemp.Column).Address, "$")(1)
End If
End If
End Function
A+
Bonjour,
Pour sélectionner la plage de la première
cellule non vide de la colonne A à la dernière
cellule non vide de la même colonne, on utilise
xlUp et xlDown. Il arrive cependant que ça
ne donne pas le bon résultat.
J'ai donc utilisé cette macro pour tout prévoir!
Qu'en pensez-vous et avez-vous d'autres suggestions ?
Sub Sélectionne()
Dim bas As Range, haut As Range
If Application.CountA([a:a]) = 0 Then
MsgBox "Aucune donnée dans la colonne A."
Exit Sub
End If
If [a65536] = "" Then Set bas = [a65536].End(xlUp) Else Set bas = [a65536]
If [a1] = "" Then Set haut = [a1].End(xlDown) Else Set haut = [a1]
Range(haut, bas).Select
End Sub
AMC , les procs ci-dessous fonctionnent pour toutes les versions d'Excel supérieures ou égales à 2000 ( à cause de Split) et permet de trouver pour toutes les plages de cellules les informations de position de dernière ligne et de dernière colonne. Cette utilisation de Find pour cette affaire fait partie des grands classiques que tu peux trouver sur de multiples sites. Attention, si il n'y a pas de dernière ligne ou de dernière colonne , les fonctions ci-dessus renvoient 0 ou rien. Tu peux perfectionner la chose en les forçant à renvoyer autre chose.
Public Function Lastrow(rng As Range) As Long
Dim rngtemp As Range
If rng.Areas.Count > 1 Then MsgBox " pas possible sur zones non contigues": Exit Function
Set rngtemp = rng.Find("*", rng.Range("A1"), xlFormulas, xlPart, xlByRows, xlPrevious)
If Not rngtemp Is Nothing Then Lastrow = rngtemp.Row
End Function
Public Function Lastcolumn(rng As Range, Numcol As string) As Variant
Dim rngtemp As Range
If rng.Areas.Count > 1 Then MsgBox " pas possible sur zones non contigues": Exit Function
Set rngtemp = rng.Find("*", rng.Range("A1"), xlFormulas, xlPart, xlColumns, xlPrevious)
If Not rngtemp Is Nothing Then If Numcol = "Yes" Then Lastcolumn = rngtemp.Column Else Lastcolumn = Split(Cells(1, rngtemp.Column).Address, "$")(1) End If End If
End Function
A+
Bonjour,
Pour sélectionner la plage de la première cellule non vide de la colonne A à la dernière cellule non vide de la même colonne, on utilise xlUp et xlDown. Il arrive cependant que ça ne donne pas le bon résultat. J'ai donc utilisé cette macro pour tout prévoir! Qu'en pensez-vous et avez-vous d'autres suggestions ?
Sub Sélectionne() Dim bas As Range, haut As Range If Application.CountA([a:a]) = 0 Then MsgBox "Aucune donnée dans la colonne A." Exit Sub End If If [a65536] = "" Then Set bas = [a65536].End(xlUp) Else Set bas = [a65536] If [a1] = "" Then Set haut = [a1].End(xlDown) Else Set haut = [a1] Range(haut, bas).Select End Sub
Serge
perso
Merci AnonymousA de ton complément qui fonctionne parfaitement également + un choix de fonction plutot qu'un Sub
Bien vu !...
pour Takanta, j'ai fait le test de mon code ce matin: Tout va bien
j'ai recopié dans un module le code qui est sur cette page, et il y a juste une erreur de coupure lors du "Collage" dans le module
essaye de me dire si c'est cela le bug ou si tu as trouvé autre chose
Merci et bon Dimanche au Excellent participant de cette belle communauté !
Pat REDNEF 2 simples 1 double HSS
Merci AnonymousA de ton complément qui fonctionne parfaitement
également + un choix de fonction plutot qu'un Sub
Bien vu !...
pour Takanta, j'ai fait le test de mon code ce matin: Tout va bien
j'ai recopié dans un module le code qui est sur cette page, et il y a
juste une erreur de coupure lors du "Collage" dans le module
essaye de me dire si c'est cela le bug ou si tu as trouvé autre chose
Merci et bon Dimanche au Excellent participant de cette belle
communauté !
Merci AnonymousA de ton complément qui fonctionne parfaitement également + un choix de fonction plutot qu'un Sub
Bien vu !...
pour Takanta, j'ai fait le test de mon code ce matin: Tout va bien
j'ai recopié dans un module le code qui est sur cette page, et il y a juste une erreur de coupure lors du "Collage" dans le module
essaye de me dire si c'est cela le bug ou si tu as trouvé autre chose
Merci et bon Dimanche au Excellent participant de cette belle communauté !
Pat REDNEF 2 simples 1 double HSS
LSteph
Bonjour Serge , Patrick, & ... ;-) toute version:
Function Bas() As Range Set Bas = [a:a].Cells([a:a].Count) If Bas = "" Then Set Bas = Bas.End(xlUp) End Function
Function Haut() As Range Set Haut = Cells(1, 1) If Haut = "" Then Set Haut = Haut.End(xlDown) End Function
Sub Selhautbas() If Haut.Row > Bas.Row Then MsgBox "Aucune plage remplie en a:a" Else Range(Haut, Bas).Columns(1).Select End If End Sub
'lSteph
Bonjour,
Pour sélectionner la plage de la première cellule non vide de la colonne A à la dernière cellule non vide de la même colonne, on utilise xlUp et xlDown. Il arrive cependant que ça ne donne pas le bon résultat. J'ai donc utilisé cette macro pour tout prévoir! Qu'en pensez-vous et avez-vous d'autres suggestions ?
Sub Sélectionne() Dim bas As Range, haut As Range If Application.CountA([a:a]) = 0 Then MsgBox "Aucune donnée dans la colonne A." Exit Sub End If If [a65536] = "" Then Set bas = [a65536].End(xlUp) Else Set bas = [a65536] If [a1] = "" Then Set haut = [a1].End(xlDown) Else Set haut = [a1] Range(haut, bas).Select End Sub
Serge
Bonjour Serge , Patrick, & ...
;-)
toute version:
Function Bas() As Range
Set Bas = [a:a].Cells([a:a].Count)
If Bas = "" Then Set Bas = Bas.End(xlUp)
End Function
Function Haut() As Range
Set Haut = Cells(1, 1)
If Haut = "" Then Set Haut = Haut.End(xlDown)
End Function
Sub Selhautbas()
If Haut.Row > Bas.Row Then
MsgBox "Aucune plage remplie en a:a"
Else
Range(Haut, Bas).Columns(1).Select
End If
End Sub
'lSteph
Bonjour,
Pour sélectionner la plage de la première
cellule non vide de la colonne A à la dernière
cellule non vide de la même colonne, on utilise
xlUp et xlDown. Il arrive cependant que ça
ne donne pas le bon résultat.
J'ai donc utilisé cette macro pour tout prévoir!
Qu'en pensez-vous et avez-vous d'autres suggestions ?
Sub Sélectionne()
Dim bas As Range, haut As Range
If Application.CountA([a:a]) = 0 Then
MsgBox "Aucune donnée dans la colonne A."
Exit Sub
End If
If [a65536] = "" Then Set bas = [a65536].End(xlUp) Else Set bas = [a65536]
If [a1] = "" Then Set haut = [a1].End(xlDown) Else Set haut = [a1]
Range(haut, bas).Select
End Sub
Function Bas() As Range Set Bas = [a:a].Cells([a:a].Count) If Bas = "" Then Set Bas = Bas.End(xlUp) End Function
Function Haut() As Range Set Haut = Cells(1, 1) If Haut = "" Then Set Haut = Haut.End(xlDown) End Function
Sub Selhautbas() If Haut.Row > Bas.Row Then MsgBox "Aucune plage remplie en a:a" Else Range(Haut, Bas).Columns(1).Select End If End Sub
'lSteph
Bonjour,
Pour sélectionner la plage de la première cellule non vide de la colonne A à la dernière cellule non vide de la même colonne, on utilise xlUp et xlDown. Il arrive cependant que ça ne donne pas le bon résultat. J'ai donc utilisé cette macro pour tout prévoir! Qu'en pensez-vous et avez-vous d'autres suggestions ?
Sub Sélectionne() Dim bas As Range, haut As Range If Application.CountA([a:a]) = 0 Then MsgBox "Aucune donnée dans la colonne A." Exit Sub End If If [a65536] = "" Then Set bas = [a65536].End(xlUp) Else Set bas = [a65536] If [a1] = "" Then Set haut = [a1].End(xlDown) Else Set haut = [a1] Range(haut, bas).Select End Sub