Je voudrais cr=E9er une macro qui, sur une plage de cellule=20
donn=E9e, trouve la premi=E8re cellule dont la bordure=20
inf=E9rieure soit de type =E9paisse. Puis enregistrer le=20
num=E9ro de la ligne de cette cellule dans une variable (c=20
par exemple) et aussi afficher ce num=E9ro dans la cellule=20
A1.
En fait je dispose d'un grand tableau (dont la longeur=20
peut varier) dont le pourtour est en bordure =E9paisse, et=20
je voudrais savoir =E0 quel num=E9ro de colonne se situe la=20
derni=E8re case de ce tableau. Cette derni=E8re case peut =EAtre=20
vide ou avoir n'importe quelle valeur, c'est pour =E7a que=20
seule la m=E9thode avec les types de bordure est possible.
Je sais qu'il existe la fonction =AB Range
("B14:B800").Borders(xlEdgeBottom).Weight =3D xlMedium =BB=20
mais je n'arrive pas =E0 faire qu'il recherche la bonne=20
cellule sur la plage donn=E9e et qu'il stocke le num=E9ro de=20
la ligne trouv=E9e dans une variable .
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
Ellimac
Bonjour,
Dans une boucle initailiser une variable qui teste si la bordure basse est épaisse. Si c'est le cas réupérer le n° de la ligne. For each c in range("a1:a5000") a = c.Borders(xlEdgeBottom).Weight = xlThick if a ="vrai" then b=c.row range("a1")=b end if next
Camille
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule donnée, trouve la première cellule dont la bordure inférieure soit de type épaisse. Puis enregistrer le numéro de la ligne de cette cellule dans une variable (c par exemple) et aussi afficher ce numéro dans la cellule A1.
En fait je dispose d'un grand tableau (dont la longeur peut varier) dont le pourtour est en bordure épaisse, et je voudrais savoir à quel numéro de colonne se situe la dernière case de ce tableau. Cette dernière case peut être
vide ou avoir n'importe quelle valeur, c'est pour ça que seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range ("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium » mais je n'arrive pas à faire qu'il recherche la bonne cellule sur la plage donnée et qu'il stocke le numéro de la ligne trouvée dans une variable .
Merci d'avance
.
Bonjour,
Dans une boucle initailiser une variable qui teste si la
bordure basse est épaisse. Si c'est le cas réupérer le n°
de la ligne.
For each c in range("a1:a5000")
a = c.Borders(xlEdgeBottom).Weight = xlThick
if a ="vrai" then
b=c.row
range("a1")=b
end if
next
Camille
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule
donnée, trouve la première cellule dont la bordure
inférieure soit de type épaisse. Puis enregistrer le
numéro de la ligne de cette cellule dans une variable (c
par exemple) et aussi afficher ce numéro dans la cellule
A1.
En fait je dispose d'un grand tableau (dont la longeur
peut varier) dont le pourtour est en bordure épaisse, et
je voudrais savoir à quel numéro de colonne se situe la
dernière case de ce tableau. Cette dernière case peut
être
vide ou avoir n'importe quelle valeur, c'est pour ça que
seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range
("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium »
mais je n'arrive pas à faire qu'il recherche la bonne
cellule sur la plage donnée et qu'il stocke le numéro de
la ligne trouvée dans une variable .
Dans une boucle initailiser une variable qui teste si la bordure basse est épaisse. Si c'est le cas réupérer le n° de la ligne. For each c in range("a1:a5000") a = c.Borders(xlEdgeBottom).Weight = xlThick if a ="vrai" then b=c.row range("a1")=b end if next
Camille
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule donnée, trouve la première cellule dont la bordure inférieure soit de type épaisse. Puis enregistrer le numéro de la ligne de cette cellule dans une variable (c par exemple) et aussi afficher ce numéro dans la cellule A1.
En fait je dispose d'un grand tableau (dont la longeur peut varier) dont le pourtour est en bordure épaisse, et je voudrais savoir à quel numéro de colonne se situe la dernière case de ce tableau. Cette dernière case peut être
vide ou avoir n'importe quelle valeur, c'est pour ça que seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range ("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium » mais je n'arrive pas à faire qu'il recherche la bonne cellule sur la plage donnée et qu'il stocke le numéro de la ligne trouvée dans une variable .
Merci d'avance
.
essaye cette sub:
Sub getendline()
Dim ligne, col As Long
ligne = 1
ligne = ActiveCell.Row col = ActiveCell.Column
Do While ligne < 65534 And Cells(ligne, col).Borders (xlEdgeBottom).Weight <> xlMedium ligne = ligne + 1 Loop
[A1] = ligne
End Sub
précision: il faut que tu cliques sur une des cases de ton tableau avant de lancer la macro.
J'avais essayer la fonction d'abord:
Function getlastline(ByVal cellule_du_tableau As Range) As Long
Dim ligne, col As Long
ligne = 1
ligne = cellule_du_tableau.Row col = cellule_du_tableau.Column
Do While ligne < 65534 And Cells(ligne, col).Borders (xlEdgeBottom).Weight <> xlMedium ligne = ligne + 1 Loop
getlastline = ligne
End Function
elle marche mais elle ne s'actualise pas quand on change le tableau.Si quelqu'un sait pourquoi, ça m'intéresse.
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule donnée, trouve la première cellule dont la bordure inférieure soit de type épaisse. Puis enregistrer le numéro de la ligne de cette cellule dans une variable (c par exemple) et aussi afficher ce numéro dans la cellule A1.
En fait je dispose d'un grand tableau (dont la longeur peut varier) dont le pourtour est en bordure épaisse, et je voudrais savoir à quel numéro de colonne se situe la dernière case de ce tableau. Cette dernière case peut être
vide ou avoir n'importe quelle valeur, c'est pour ça que seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range ("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium » mais je n'arrive pas à faire qu'il recherche la bonne cellule sur la plage donnée et qu'il stocke le numéro de la ligne trouvée dans une variable .
Merci d'avance
.
essaye cette sub:
Sub getendline()
Dim ligne, col As Long
ligne = 1
ligne = ActiveCell.Row
col = ActiveCell.Column
Do While ligne < 65534 And Cells(ligne, col).Borders
(xlEdgeBottom).Weight <> xlMedium
ligne = ligne + 1
Loop
[A1] = ligne
End Sub
précision: il faut que tu cliques sur une des cases de ton
tableau avant de lancer la macro.
J'avais essayer la fonction d'abord:
Function getlastline(ByVal cellule_du_tableau As Range) As
Long
Dim ligne, col As Long
ligne = 1
ligne = cellule_du_tableau.Row
col = cellule_du_tableau.Column
Do While ligne < 65534 And Cells(ligne, col).Borders
(xlEdgeBottom).Weight <> xlMedium
ligne = ligne + 1
Loop
getlastline = ligne
End Function
elle marche mais elle ne s'actualise pas quand on change
le tableau.Si quelqu'un sait pourquoi, ça m'intéresse.
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule
donnée, trouve la première cellule dont la bordure
inférieure soit de type épaisse. Puis enregistrer le
numéro de la ligne de cette cellule dans une variable (c
par exemple) et aussi afficher ce numéro dans la cellule
A1.
En fait je dispose d'un grand tableau (dont la longeur
peut varier) dont le pourtour est en bordure épaisse, et
je voudrais savoir à quel numéro de colonne se situe la
dernière case de ce tableau. Cette dernière case peut
être
vide ou avoir n'importe quelle valeur, c'est pour ça que
seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range
("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium »
mais je n'arrive pas à faire qu'il recherche la bonne
cellule sur la plage donnée et qu'il stocke le numéro de
la ligne trouvée dans une variable .
Do While ligne < 65534 And Cells(ligne, col).Borders (xlEdgeBottom).Weight <> xlMedium ligne = ligne + 1 Loop
[A1] = ligne
End Sub
précision: il faut que tu cliques sur une des cases de ton tableau avant de lancer la macro.
J'avais essayer la fonction d'abord:
Function getlastline(ByVal cellule_du_tableau As Range) As Long
Dim ligne, col As Long
ligne = 1
ligne = cellule_du_tableau.Row col = cellule_du_tableau.Column
Do While ligne < 65534 And Cells(ligne, col).Borders (xlEdgeBottom).Weight <> xlMedium ligne = ligne + 1 Loop
getlastline = ligne
End Function
elle marche mais elle ne s'actualise pas quand on change le tableau.Si quelqu'un sait pourquoi, ça m'intéresse.
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule donnée, trouve la première cellule dont la bordure inférieure soit de type épaisse. Puis enregistrer le numéro de la ligne de cette cellule dans une variable (c par exemple) et aussi afficher ce numéro dans la cellule A1.
En fait je dispose d'un grand tableau (dont la longeur peut varier) dont le pourtour est en bordure épaisse, et je voudrais savoir à quel numéro de colonne se situe la dernière case de ce tableau. Cette dernière case peut être
vide ou avoir n'importe quelle valeur, c'est pour ça que seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range ("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium » mais je n'arrive pas à faire qu'il recherche la bonne cellule sur la plage donnée et qu'il stocke le numéro de la ligne trouvée dans une variable .
Merci d'avance
.
Chris MICHEL
Si cette solution apparait en double, désolé mais j'avais oublié de donner mon nom la première et je n'étais pas sûr que le message passe.
Essaie cette sub:
Sub getendline()
Dim ligne, col As Long
ligne = 1
ligne = ActiveCell.Row col = ActiveCell.Column
Do While ligne < 65534 And Cells(ligne, col).Borders (xlEdgeBottom).Weight <> xlMedium ligne = ligne + 1 Loop
[A1] = ligne
End Sub
Précision: il faut cliquer sur une des cases du tableau avant de lancer la macro.
J'avais d'abord essayé sous forme de fonction:
Function getlastline(ByVal cellule_du_tableau As Range) As Long
Dim ligne, col As Long
ligne = 1
ligne = cellule_du_tableau.Row col = cellule_du_tableau.Column
Do While ligne < 65534 And Cells(ligne, col).Borders (xlEdgeBottom).Weight <> xlMedium ligne = ligne + 1 Loop
getlastline = ligne
End Function
La fonction marche mais elle ne s'actualise pas quand on change le tableau. Si qelqu'un sait pourquoi, ça m'intéresse.
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule donnée, trouve la première cellule dont la bordure inférieure soit de type épaisse. Puis enregistrer le numéro de la ligne de cette cellule dans une variable (c par exemple) et aussi afficher ce numéro dans la cellule A1.
En fait je dispose d'un grand tableau (dont la longeur peut varier) dont le pourtour est en bordure épaisse, et je voudrais savoir à quel numéro de colonne se situe la dernière case de ce tableau. Cette dernière case peut être
vide ou avoir n'importe quelle valeur, c'est pour ça que seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range ("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium » mais je n'arrive pas à faire qu'il recherche la bonne cellule sur la plage donnée et qu'il stocke le numéro de la ligne trouvée dans une variable .
Merci d'avance
.
Si cette solution apparait en double, désolé mais j'avais
oublié de donner mon nom la première et je n'étais pas sûr
que le message passe.
Essaie cette sub:
Sub getendline()
Dim ligne, col As Long
ligne = 1
ligne = ActiveCell.Row
col = ActiveCell.Column
Do While ligne < 65534 And Cells(ligne, col).Borders
(xlEdgeBottom).Weight <> xlMedium
ligne = ligne + 1
Loop
[A1] = ligne
End Sub
Précision: il faut cliquer sur une des cases du tableau
avant de lancer la macro.
J'avais d'abord essayé sous forme de fonction:
Function getlastline(ByVal cellule_du_tableau As Range) As
Long
Dim ligne, col As Long
ligne = 1
ligne = cellule_du_tableau.Row
col = cellule_du_tableau.Column
Do While ligne < 65534 And Cells(ligne, col).Borders
(xlEdgeBottom).Weight <> xlMedium
ligne = ligne + 1
Loop
getlastline = ligne
End Function
La fonction marche mais elle ne s'actualise pas quand on
change le tableau. Si qelqu'un sait pourquoi, ça
m'intéresse.
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule
donnée, trouve la première cellule dont la bordure
inférieure soit de type épaisse. Puis enregistrer le
numéro de la ligne de cette cellule dans une variable (c
par exemple) et aussi afficher ce numéro dans la cellule
A1.
En fait je dispose d'un grand tableau (dont la longeur
peut varier) dont le pourtour est en bordure épaisse, et
je voudrais savoir à quel numéro de colonne se situe la
dernière case de ce tableau. Cette dernière case peut
être
vide ou avoir n'importe quelle valeur, c'est pour ça que
seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range
("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium »
mais je n'arrive pas à faire qu'il recherche la bonne
cellule sur la plage donnée et qu'il stocke le numéro de
la ligne trouvée dans une variable .
Si cette solution apparait en double, désolé mais j'avais oublié de donner mon nom la première et je n'étais pas sûr que le message passe.
Essaie cette sub:
Sub getendline()
Dim ligne, col As Long
ligne = 1
ligne = ActiveCell.Row col = ActiveCell.Column
Do While ligne < 65534 And Cells(ligne, col).Borders (xlEdgeBottom).Weight <> xlMedium ligne = ligne + 1 Loop
[A1] = ligne
End Sub
Précision: il faut cliquer sur une des cases du tableau avant de lancer la macro.
J'avais d'abord essayé sous forme de fonction:
Function getlastline(ByVal cellule_du_tableau As Range) As Long
Dim ligne, col As Long
ligne = 1
ligne = cellule_du_tableau.Row col = cellule_du_tableau.Column
Do While ligne < 65534 And Cells(ligne, col).Borders (xlEdgeBottom).Weight <> xlMedium ligne = ligne + 1 Loop
getlastline = ligne
End Function
La fonction marche mais elle ne s'actualise pas quand on change le tableau. Si qelqu'un sait pourquoi, ça m'intéresse.
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule donnée, trouve la première cellule dont la bordure inférieure soit de type épaisse. Puis enregistrer le numéro de la ligne de cette cellule dans une variable (c par exemple) et aussi afficher ce numéro dans la cellule A1.
En fait je dispose d'un grand tableau (dont la longeur peut varier) dont le pourtour est en bordure épaisse, et je voudrais savoir à quel numéro de colonne se situe la dernière case de ce tableau. Cette dernière case peut être
vide ou avoir n'importe quelle valeur, c'est pour ça que seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range ("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium » mais je n'arrive pas à faire qu'il recherche la bonne cellule sur la plage donnée et qu'il stocke le numéro de la ligne trouvée dans une variable .
Merci d'avance
.
Ellimac
Re,
Autre solution plus rapide :
Sub Toto() Selection.SpecialCells(xlCellTypeLastCell).Select der = Selection.Row For cpt = der To 1 Step -1 a = ActiveCell.Borders(xlEdgeBottom).Weight = xlThick If a = True Then b = ActiveCell.Row Range("a1") = b Exit Sub End If ActiveCell.Offset(-1).Select Next End Sub
Camille
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule donnée, trouve la première cellule dont la bordure inférieure soit de type épaisse. Puis enregistrer le numéro de la ligne de cette cellule dans une variable (c par exemple) et aussi afficher ce numéro dans la cellule A1.
En fait je dispose d'un grand tableau (dont la longeur peut varier) dont le pourtour est en bordure épaisse, et je voudrais savoir à quel numéro de colonne se situe la dernière case de ce tableau. Cette dernière case peut être
vide ou avoir n'importe quelle valeur, c'est pour ça que seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range ("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium » mais je n'arrive pas à faire qu'il recherche la bonne cellule sur la plage donnée et qu'il stocke le numéro de la ligne trouvée dans une variable .
Merci d'avance
.
Re,
Autre solution plus rapide :
Sub Toto()
Selection.SpecialCells(xlCellTypeLastCell).Select
der = Selection.Row
For cpt = der To 1 Step -1
a = ActiveCell.Borders(xlEdgeBottom).Weight = xlThick
If a = True Then
b = ActiveCell.Row
Range("a1") = b
Exit Sub
End If
ActiveCell.Offset(-1).Select
Next
End Sub
Camille
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule
donnée, trouve la première cellule dont la bordure
inférieure soit de type épaisse. Puis enregistrer le
numéro de la ligne de cette cellule dans une variable (c
par exemple) et aussi afficher ce numéro dans la cellule
A1.
En fait je dispose d'un grand tableau (dont la longeur
peut varier) dont le pourtour est en bordure épaisse, et
je voudrais savoir à quel numéro de colonne se situe la
dernière case de ce tableau. Cette dernière case peut
être
vide ou avoir n'importe quelle valeur, c'est pour ça que
seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range
("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium »
mais je n'arrive pas à faire qu'il recherche la bonne
cellule sur la plage donnée et qu'il stocke le numéro de
la ligne trouvée dans une variable .
Sub Toto() Selection.SpecialCells(xlCellTypeLastCell).Select der = Selection.Row For cpt = der To 1 Step -1 a = ActiveCell.Borders(xlEdgeBottom).Weight = xlThick If a = True Then b = ActiveCell.Row Range("a1") = b Exit Sub End If ActiveCell.Offset(-1).Select Next End Sub
Camille
-----Message d'origine-----
Bonjour,
Je voudrais créer une macro qui, sur une plage de cellule donnée, trouve la première cellule dont la bordure inférieure soit de type épaisse. Puis enregistrer le numéro de la ligne de cette cellule dans une variable (c par exemple) et aussi afficher ce numéro dans la cellule A1.
En fait je dispose d'un grand tableau (dont la longeur peut varier) dont le pourtour est en bordure épaisse, et je voudrais savoir à quel numéro de colonne se situe la dernière case de ce tableau. Cette dernière case peut être
vide ou avoir n'importe quelle valeur, c'est pour ça que seule la méthode avec les types de bordure est possible.
Je sais qu'il existe la fonction « Range ("B14:B800").Borders(xlEdgeBottom).Weight = xlMedium » mais je n'arrive pas à faire qu'il recherche la bonne cellule sur la plage donnée et qu'il stocke le numéro de la ligne trouvée dans une variable .