j'ai une macro qui me sélectionne automatiquement mes cases remplies via:
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma ligne 1 de
ma feuille pour ce faire j'ai 2 solutions:
1- Code pour tester si ma première ligne est vide ?
2- suite à ma commande de sélection, m'indiquer combien de ligne (ma heuteur
de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2?
Bonsour® Franck Deschamps avec ferveur ;o))) vous nous disiez :
2- suite à ma commande de sélection, m'indiquer combien de ligne (ma heuteur de sélection) je viens de sélectionner.
Msgbox Selection.Rows.Count
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
LSteph
Bonsoir, 1-exemple à adapter:
'*** Sub testvide() Dim mess As String mess = "vide" For Each c In Rows(1).Cells If Not IsEmpty(c) Then mess = "non vide" Exit For End If Next MsgBox mess End Sub
'*** 'lSteph
"Franck Deschamps" a écrit dans le message de news:
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via: Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma ligne 1 de ma feuille pour ce faire j'ai 2 solutions: 1- Code pour tester si ma première ligne est vide ? 2- suite à ma commande de sélection, m'indiquer combien de ligne (ma heuteur de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2?
Merci
Franc le débutant :-)
Bonsoir,
1-exemple à adapter:
'***
Sub testvide()
Dim mess As String
mess = "vide"
For Each c In Rows(1).Cells
If Not IsEmpty(c) Then
mess = "non vide"
Exit For
End If
Next
MsgBox mess
End Sub
'***
'lSteph
"Franck Deschamps" <franck@deschamps-web.com> a écrit dans le message de
news: emrDNXcAGHA.2908@TK2MSFTNGP10.phx.gbl...
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via:
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma ligne 1 de
ma feuille pour ce faire j'ai 2 solutions:
1- Code pour tester si ma première ligne est vide ?
2- suite à ma commande de sélection, m'indiquer combien de ligne (ma
heuteur de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2?
'*** Sub testvide() Dim mess As String mess = "vide" For Each c In Rows(1).Cells If Not IsEmpty(c) Then mess = "non vide" Exit For End If Next MsgBox mess End Sub
'*** 'lSteph
"Franck Deschamps" a écrit dans le message de news:
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via: Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma ligne 1 de ma feuille pour ce faire j'ai 2 solutions: 1- Code pour tester si ma première ligne est vide ? 2- suite à ma commande de sélection, m'indiquer combien de ligne (ma heuteur de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2?
Merci
Franc le débutant :-)
anonymousA
Bonjour,
1-Pour savoir si une ligne est vide if WorksheetFunction.CountBlank(Range("A100:IV100"))%6 then "ligne vide"
2-pour connaitre le nombre de lignes différentes selectionnées. Traite le cas général des selections non contigues
ReDim tabl(1 To 1) tabl(1) = Selection.Areas(1).Cells(1).Row
For Each are In Selection.Areas For Each c In are.Cells rech = 0 On Error Resume Next rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0) Err.Clear If rech >= 1 Then Else ReDim Preserve tabl(1 To compteur + 1) tabl(compteur) = c.Row End If Next Next
MsgBox "Nombre de lignes : " & UBound(tabl)
A+
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via: Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma ligne 1 de ma feuille pour ce faire j'ai 2 solutions: 1- Code pour tester si ma première ligne est vide ? 2- suite à ma commande de sélection, m'indiquer combien de ligne (ma heuteur de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2?
Merci
Franc le débutant :-)
Bonjour,
1-Pour savoir si une ligne est vide
if WorksheetFunction.CountBlank(Range("A100:IV100"))%6 then "ligne vide"
2-pour connaitre le nombre de lignes différentes selectionnées. Traite
le cas général des selections non contigues
ReDim tabl(1 To 1)
tabl(1) = Selection.Areas(1).Cells(1).Row
For Each are In Selection.Areas
For Each c In are.Cells
rech = 0
On Error Resume Next
rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0)
Err.Clear
If rech >= 1 Then
Else
ReDim Preserve tabl(1 To compteur + 1)
tabl(compteur) = c.Row
End If
Next
Next
MsgBox "Nombre de lignes : " & UBound(tabl)
A+
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via:
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma ligne 1 de
ma feuille pour ce faire j'ai 2 solutions:
1- Code pour tester si ma première ligne est vide ?
2- suite à ma commande de sélection, m'indiquer combien de ligne (ma heuteur
de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2?
ReDim tabl(1 To 1) tabl(1) = Selection.Areas(1).Cells(1).Row
For Each are In Selection.Areas For Each c In are.Cells rech = 0 On Error Resume Next rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0) Err.Clear If rech >= 1 Then Else ReDim Preserve tabl(1 To compteur + 1) tabl(compteur) = c.Row End If Next Next
MsgBox "Nombre de lignes : " & UBound(tabl)
A+
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via: Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma ligne 1 de ma feuille pour ce faire j'ai 2 solutions: 1- Code pour tester si ma première ligne est vide ? 2- suite à ma commande de sélection, m'indiquer combien de ligne (ma heuteur de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2?
Merci
Franc le débutant :-)
anonymousA
Bonjour,
pas si simple si les cellules de la selection ne sont pas contigues, tu ne crois pas ?
Cordialement,
Bonsour® Franck Deschamps avec ferveur ;o))) vous nous disiez :
2- suite à ma commande de sélection, m'indiquer combien de ligne (ma heuteur de sélection) je viens de sélectionner.
Msgbox Selection.Rows.Count
Bonjour,
pas si simple si les cellules de la selection ne sont pas contigues, tu
ne crois pas ?
Cordialement,
Bonsour® Franck Deschamps avec ferveur ;o))) vous nous disiez :
2- suite à ma commande de sélection, m'indiquer combien de ligne (ma
heuteur
de sélection) je viens de sélectionner.
Sub Eval() ActiveWorkbook.Names.Add "NumLigne", 12 MsgBox ActiveSheet.Evaluate("NbCarLigne") = 0 End Sub
Ensuite en modifiant à la main la valeur de "NumLigne", ou en modifiant le contenu d'une cellule renommée "NumLigne", tu peux évaluer sans macro si une ligne est vide en entrant la formule
=NbCarLigne
, qui t'indique le nombre de caracères présents su la ligne ou
=NbCarLigne = 0
, qui t'indique directement si la ligne est vide.
Bonjour,
1-Pour savoir si une ligne est vide if WorksheetFunction.CountBlank(Range("A100:IV100"))%6 then "ligne vide"
2-pour connaitre le nombre de lignes différentes selectionnées. Tra ite le cas général des selections non contigues
ReDim tabl(1 To 1) tabl(1) = Selection.Areas(1).Cells(1).Row
For Each are In Selection.Areas For Each c In are.Cells rech = 0 On Error Resume Next rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0) Err.Clear If rech >= 1 Then Else ReDim Preserve tabl(1 To compteur + 1) tabl(compteur) = c.Row End If Next Next
MsgBox "Nombre de lignes : " & UBound(tabl)
A+
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via: Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma li gne 1 de ma feuille pour ce faire j'ai 2 solutions: 1- Code pour tester si ma première ligne est vide ? 2- suite à ma commande de sélection, m'indiquer combien de ligne ( ma heuteur de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2 ?
Merci
Franc le débutant :-)
-- Cordialement,
Michel Gaboly www.gaboly.com
Bonsoir,
Autre approche :
Dans la feuille de calcul, tu définis le nom "NbCarLigne" faisant réf érence à :
Sub Eval()
ActiveWorkbook.Names.Add "NumLigne", 12
MsgBox ActiveSheet.Evaluate("NbCarLigne") = 0
End Sub
Ensuite en modifiant à la main la valeur de "NumLigne", ou en modifiant le contenu d'une cellule renommée "NumLigne", tu
peux évaluer sans macro si une ligne est vide en entrant la formule
=NbCarLigne
, qui t'indique le nombre de caracères présents su la ligne ou
=NbCarLigne = 0
, qui t'indique directement si la ligne est vide.
Bonjour,
1-Pour savoir si une ligne est vide
if WorksheetFunction.CountBlank(Range("A100:IV100"))=256 then "ligne vide"
2-pour connaitre le nombre de lignes différentes selectionnées. Tra ite
le cas général des selections non contigues
ReDim tabl(1 To 1)
tabl(1) = Selection.Areas(1).Cells(1).Row
For Each are In Selection.Areas
For Each c In are.Cells
rech = 0
On Error Resume Next
rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0)
Err.Clear
If rech >= 1 Then
Else
ReDim Preserve tabl(1 To compteur + 1)
tabl(compteur) = c.Row
End If
Next
Next
MsgBox "Nombre de lignes : " & UBound(tabl)
A+
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via:
Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma li gne
1 de ma feuille pour ce faire j'ai 2 solutions:
1- Code pour tester si ma première ligne est vide ?
2- suite à ma commande de sélection, m'indiquer combien de ligne ( ma
heuteur de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2 ?
Sub Eval() ActiveWorkbook.Names.Add "NumLigne", 12 MsgBox ActiveSheet.Evaluate("NbCarLigne") = 0 End Sub
Ensuite en modifiant à la main la valeur de "NumLigne", ou en modifiant le contenu d'une cellule renommée "NumLigne", tu peux évaluer sans macro si une ligne est vide en entrant la formule
=NbCarLigne
, qui t'indique le nombre de caracères présents su la ligne ou
=NbCarLigne = 0
, qui t'indique directement si la ligne est vide.
Bonjour,
1-Pour savoir si une ligne est vide if WorksheetFunction.CountBlank(Range("A100:IV100"))%6 then "ligne vide"
2-pour connaitre le nombre de lignes différentes selectionnées. Tra ite le cas général des selections non contigues
ReDim tabl(1 To 1) tabl(1) = Selection.Areas(1).Cells(1).Row
For Each are In Selection.Areas For Each c In are.Cells rech = 0 On Error Resume Next rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0) Err.Clear If rech >= 1 Then Else ReDim Preserve tabl(1 To compteur + 1) tabl(compteur) = c.Row End If Next Next
MsgBox "Nombre de lignes : " & UBound(tabl)
A+
Bonjour,
j'ai une macro qui me sélectionne automatiquement mes cases remplies via: Selection.SpecialCells(xlCellTypeConstants, 23).Select
Mais je voudrais auparavant vérifier si j'ai des données sur ma li gne 1 de ma feuille pour ce faire j'ai 2 solutions: 1- Code pour tester si ma première ligne est vide ? 2- suite à ma commande de sélection, m'indiquer combien de ligne ( ma heuteur de sélection) je viens de sélectionner.
Est ce que qqu'un aurait une idée de code pour la solution 1 et/ou 2 ?
Merci
Franc le débutant :-)
-- Cordialement,
Michel Gaboly www.gaboly.com
Fredo P.
Pour la 1:[A2] = Application.CountA([A1:G1]) ou [A3] Application.CountA(Rows(1)) résult=0=ligne vide Pour la 2:[A4] = Selection.Rows.Count
Pour la 1:[A2] = Application.CountA([A1:G1]) ou [A3] Application.CountA(Rows(1))
résult=0=ligne vide
Pour la 2:[A4] = Selection.Rows.Count
Pour la 1:[A2] = Application.CountA([A1:G1]) ou [A3] Application.CountA(Rows(1)) résult=0=ligne vide Pour la 2:[A4] = Selection.Rows.Count
Modeste
Bonsour® anonymousA avec ferveur ;o))) vous nous disiez :
Dim tabl() compteur = 1 Selection.SpecialCells(xlCellTypeConstants, 23).Select ReDim tabl(1 To 1) tabl(1) = Selection.Areas(1).Cells(1).Row For Each are In Selection.Areas For Each c In are.Cells rech = 0 On Error Resume Next rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0) Err.Clear If rech >= 1 Then Else ReDim Preserve tabl(1 To compteur + 1) tabl(compteur) = c.Row End If Next Next
MsgBox "Nombre de lignes : " & UBound(tabl)
;o))) heu !!! Oui en effet : pas si simple , tu ne crois pas ?
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
Bonsour® anonymousA avec ferveur ;o))) vous nous disiez :
Dim tabl()
compteur = 1
Selection.SpecialCells(xlCellTypeConstants, 23).Select
ReDim tabl(1 To 1)
tabl(1) = Selection.Areas(1).Cells(1).Row
For Each are In Selection.Areas
For Each c In are.Cells
rech = 0
On Error Resume Next
rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0)
Err.Clear
If rech >= 1 Then
Else
ReDim Preserve tabl(1 To compteur + 1)
tabl(compteur) = c.Row
End If
Next
Next
MsgBox "Nombre de lignes : " & UBound(tabl)
;o)))
heu !!! Oui en effet : pas si simple , tu ne crois pas ?
--
;o)))
@+
Les news à la source !!!
news://news.microsoft.com/microsoft.public.fr.excel
et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net
http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
Bonsour® anonymousA avec ferveur ;o))) vous nous disiez :
Dim tabl() compteur = 1 Selection.SpecialCells(xlCellTypeConstants, 23).Select ReDim tabl(1 To 1) tabl(1) = Selection.Areas(1).Cells(1).Row For Each are In Selection.Areas For Each c In are.Cells rech = 0 On Error Resume Next rech = WorksheetFunction.HLookup(c.Row, tabl, 1, 0) Err.Clear If rech >= 1 Then Else ReDim Preserve tabl(1 To compteur + 1) tabl(compteur) = c.Row End If Next Next
MsgBox "Nombre de lignes : " & UBound(tabl)
;o))) heu !!! Oui en effet : pas si simple , tu ne crois pas ?
-- ;o))) @+
Les news à la source !!! news://news.microsoft.com/microsoft.public.fr.excel et répondez OUI
n'oubliez pas les FAQ :http://www.excelabo.net http://dj.joss.free.fr/faq.htm http://www.faqoe.com http://faqword.free.fr
JB
Bonjour,
1- If Application.CountA(Rows(1)) = 0 Then MsgBox "ligne1 vide"
2- Selection.SpecialCells(xlCellTypeConstants, 23).Select h = Selection.SpecialCells(xlLastCell).Row - ActiveCell.Row
Cordialement JB
Bonjour,
1- If Application.CountA(Rows(1)) = 0 Then MsgBox "ligne1 vide"
2-
Selection.SpecialCells(xlCellTypeConstants, 23).Select
h = Selection.SpecialCells(xlLastCell).Row - ActiveCell.Row
1- If Application.CountA(Rows(1)) = 0 Then MsgBox "ligne1 vide"
2- Selection.SpecialCells(xlCellTypeConstants, 23).Select h = Selection.SpecialCells(xlLastCell).Row - ActiveCell.Row
Cordialement JB
anonymousA
Bonjour,
sur le point 2, te donnera la différence entre la dernière ligne et la 1ere mais pas le nombre exact de lignes qui sont selectionnées ( si l'on considère qu'une ligne est sélectionnée si au moins 1 cellule de celle-ci l'est).
Cordialement,
JB wrote:
Bonjour,
1- If Application.CountA(Rows(1)) = 0 Then MsgBox "ligne1 vide"
2- Selection.SpecialCells(xlCellTypeConstants, 23).Select h = Selection.SpecialCells(xlLastCell).Row - ActiveCell.Row
Cordialement JB
Bonjour,
sur le point 2, te donnera la différence entre la dernière ligne et
la 1ere mais pas le nombre exact de lignes qui sont selectionnées ( si
l'on considère qu'une ligne est sélectionnée si au moins 1 cellule
de celle-ci l'est).
Cordialement,
JB wrote:
Bonjour,
1- If Application.CountA(Rows(1)) = 0 Then MsgBox "ligne1 vide"
2-
Selection.SpecialCells(xlCellTypeConstants, 23).Select
h = Selection.SpecialCells(xlLastCell).Row - ActiveCell.Row
sur le point 2, te donnera la différence entre la dernière ligne et la 1ere mais pas le nombre exact de lignes qui sont selectionnées ( si l'on considère qu'une ligne est sélectionnée si au moins 1 cellule de celle-ci l'est).
Cordialement,
JB wrote:
Bonjour,
1- If Application.CountA(Rows(1)) = 0 Then MsgBox "ligne1 vide"
2- Selection.SpecialCells(xlCellTypeConstants, 23).Select h = Selection.SpecialCells(xlLastCell).Row - ActiveCell.Row
Cordialement JB
JB
Bonjour,
Il me semble bien que c'est la hauteur de la sélection qui est recherchée. (8 sur l'exemple) A B C 1 2 22 3 33 4 5 44 6 7 8 55 9 444 10
Sub essai Set champ = Range("a2:b1000") ' champ dans lequel on recherche les constantes (optionnel) h = champ.SpecialCells(xlCellTypeConstants, 23).Areas(champ.SpecialCells(xlCellTypeConstants, 23).Areas.Count).Row - champ.Row + 1 End Sub
http://cjoint.com/?mqjNp7xVXX
Cordialement JB
Bonjour,
Il me semble bien que c'est la hauteur de la sélection qui est
recherchée. (8 sur l'exemple)
A B C
1
2 22
3 33
4
5 44
6
7
8 55
9 444
10
Sub essai
Set champ = Range("a2:b1000") ' champ dans lequel on recherche
les constantes (optionnel)
h = champ.SpecialCells(xlCellTypeConstants,
23).Areas(champ.SpecialCells(xlCellTypeConstants, 23).Areas.Count).Row
- champ.Row + 1
End Sub
Il me semble bien que c'est la hauteur de la sélection qui est recherchée. (8 sur l'exemple) A B C 1 2 22 3 33 4 5 44 6 7 8 55 9 444 10
Sub essai Set champ = Range("a2:b1000") ' champ dans lequel on recherche les constantes (optionnel) h = champ.SpecialCells(xlCellTypeConstants, 23).Areas(champ.SpecialCells(xlCellTypeConstants, 23).Areas.Count).Row - champ.Row + 1 End Sub