Bonjour,
Je cherche en vba comment trouver la premi=C3=A8re cellule vide dans une pl=
age de plusieurs colonnes et plusieurs lignes. Par d=C3=A9faut le d=C3=A9pl=
acement d'excel est vers la droite je voudrais qu'il cherche vers le bas
Bonjour, Dim DerLig As Long 'Nom de l'onglet de la feuille à adapter With Worksheets("Feuil1") DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row End With MichD Le 2019-03-21 à 05:12, a écrit :
Bonjour, Je cherche en vba comment trouver la première cellule vide dans une plage de plusieurs colonnes et plusieurs lignes. Par défaut le déplacement d'excel est vers la droite je voudrais qu'il cherche vers le bas Merci beaucoup pour vos idées Caroual
Bonjour,
Dim DerLig As Long
'Nom de l'onglet de la feuille à adapter
With Worksheets("Feuil1")
DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End With
MichD
Le 2019-03-21 à 05:12, martine.leport@gmail.com a écrit :
Bonjour,
Je cherche en vba comment trouver la première cellule vide dans une plage de plusieurs colonnes et plusieurs lignes. Par défaut le déplacement d'excel est vers la droite je voudrais qu'il cherche vers le bas
Bonjour, Dim DerLig As Long 'Nom de l'onglet de la feuille à adapter With Worksheets("Feuil1") DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row End With MichD Le 2019-03-21 à 05:12, a écrit :
Bonjour, Je cherche en vba comment trouver la première cellule vide dans une plage de plusieurs colonnes et plusieurs lignes. Par défaut le déplacement d'excel est vers la droite je voudrais qu'il cherche vers le bas Merci beaucoup pour vos idées Caroual
MichD
Le 2019-03-21 à 07:09, MichD a écrit :
Bonjour, Dim DerLig As Long 'Nom de l'onglet de la feuille à adapter With Worksheets("Feuil1") DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row End With MichD
Précision : La procédure retourne la dernière ligne occupée de la plage A:C. Si tu veux avoir la première ligne vide, tu dois ajouter 1 With Worksheets("Feuil1") DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 End With MichD
Le 2019-03-21 à 07:09, MichD a écrit :
Bonjour,
Dim DerLig As Long
'Nom de l'onglet de la feuille à adapter
With Worksheets("Feuil1")
DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
End With
MichD
Précision :
La procédure retourne la dernière ligne occupée de la plage A:C.
Si tu veux avoir la première ligne vide, tu dois ajouter 1
With Worksheets("Feuil1")
DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1
End With
Bonjour, Dim DerLig As Long 'Nom de l'onglet de la feuille à adapter With Worksheets("Feuil1") DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row End With MichD
Précision : La procédure retourne la dernière ligne occupée de la plage A:C. Si tu veux avoir la première ligne vide, tu dois ajouter 1 With Worksheets("Feuil1") DerLig = .Range("A:C").Find("*", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row + 1 End With MichD
MichD
J'ai mal lu ta question : Dans la plage A1:C8, procédure pour trouver la première ligne vide totalement vide : '------------------------------ Sub test() Dim DerLig As Long With Worksheets("Feuil1") DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlNext).Row End With If DerLig = 9 Then MsgBox "Aucune ligne vide dans la plage de A1:C8" Else MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """ & DerLig End If End Sub '------------------------------ Si tu cherches la dernière ligne vide dans la même plage de cellule en supposant qu'il y en ait plus qu'une, modifie le paramètre dans la procédure. SearchDirection:=xlNext Par SearchDirection:=xlPrevious MichD
J'ai mal lu ta question :
Dans la plage A1:C8, procédure pour trouver la première ligne vide
totalement vide :
'------------------------------
Sub test()
Dim DerLig As Long
With Worksheets("Feuil1")
DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlNext).Row
End With
If DerLig = 9 Then
MsgBox "Aucune ligne vide dans la plage de A1:C8"
Else
MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """
& DerLig
End If
End Sub
'------------------------------
Si tu cherches la dernière ligne vide dans la même plage de cellule en
supposant qu'il y en ait plus qu'une, modifie le paramètre dans la
procédure.
J'ai mal lu ta question : Dans la plage A1:C8, procédure pour trouver la première ligne vide totalement vide : '------------------------------ Sub test() Dim DerLig As Long With Worksheets("Feuil1") DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlNext).Row End With If DerLig = 9 Then MsgBox "Aucune ligne vide dans la plage de A1:C8" Else MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """ & DerLig End If End Sub '------------------------------ Si tu cherches la dernière ligne vide dans la même plage de cellule en supposant qu'il y en ait plus qu'une, modifie le paramètre dans la procédure. SearchDirection:=xlNext Par SearchDirection:=xlPrevious MichD
martine.leport
Le jeudi 21 mars 2019 12:32:18 UTC+1, MichD a écrit :
J'ai mal lu ta question : Dans la plage A1:C8, procédure pour trouver la première ligne v ide totalement vide : '------------------------------ Sub test() Dim DerLig As Long With Worksheets("Feuil1") DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlNext).Row End With If DerLig = 9 Then MsgBox "Aucune ligne vide dans la plage de A1:C8" Else MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """ & DerLig End If End Sub '------------------------------ Si tu cherches la dernière ligne vide dans la même plage de cel lule en supposant qu'il y en ait plus qu'une, modifie le paramètre dans la procédure. SearchDirection:=xlNext Par SearchDirection:=xlPrevious MichD
Ma demande n'était pas bien formulée Dans ma plage A1:C8 je cherche si a1 est vide puis a2 puis a3 a4 a5 a6 a7 a8 b1 b2 etc je veux trouver 3 cellules vides à suivre Si j'ai quelque chose en a1 et a3, a2 est seul vide donc ne m'intéress e pas si la première cellule vide est a7 et que a8 et b1 sont vides au ssi alors c'est OK sachant qu'il peut y avoir d'autres cellules remplies en suite. Je veux une suite de 3 cellules vides en commençant à regarder en a1 puis a2 a3 jusqu'à a8 puis b1 b2 jusqu'à b8 puis c1 c2 jusq u'à c8 Caroual
Le jeudi 21 mars 2019 12:32:18 UTC+1, MichD a écrit :
J'ai mal lu ta question :
Dans la plage A1:C8, procédure pour trouver la première ligne v ide
totalement vide :
'------------------------------
Sub test()
Dim DerLig As Long
With Worksheets("Feuil1")
DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlNext).Row
End With
If DerLig = 9 Then
MsgBox "Aucune ligne vide dans la plage de A1:C8"
Else
MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """
& DerLig
End If
End Sub
'------------------------------
Si tu cherches la dernière ligne vide dans la même plage de cel lule en
supposant qu'il y en ait plus qu'une, modifie le paramètre dans la
procédure.
SearchDirection:=xlNext
Par
SearchDirection:=xlPrevious
MichD
Ma demande n'était pas bien formulée
Dans ma plage A1:C8
je cherche si a1 est vide puis a2 puis a3 a4 a5 a6 a7 a8 b1 b2 etc
je veux trouver 3 cellules vides à suivre
Si j'ai quelque chose en a1 et a3, a2 est seul vide donc ne m'intéress e pas si la première cellule vide est a7 et que a8 et b1 sont vides au ssi alors c'est OK sachant qu'il peut y avoir d'autres cellules remplies en suite.
Je veux une suite de 3 cellules vides en commençant à regarder en a1 puis a2 a3 jusqu'à a8 puis b1 b2 jusqu'à b8 puis c1 c2 jusq u'à c8
Caroual
Le jeudi 21 mars 2019 12:32:18 UTC+1, MichD a écrit :
J'ai mal lu ta question : Dans la plage A1:C8, procédure pour trouver la première ligne v ide totalement vide : '------------------------------ Sub test() Dim DerLig As Long With Worksheets("Feuil1") DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlNext).Row End With If DerLig = 9 Then MsgBox "Aucune ligne vide dans la plage de A1:C8" Else MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """ & DerLig End If End Sub '------------------------------ Si tu cherches la dernière ligne vide dans la même plage de cel lule en supposant qu'il y en ait plus qu'une, modifie le paramètre dans la procédure. SearchDirection:=xlNext Par SearchDirection:=xlPrevious MichD
Ma demande n'était pas bien formulée Dans ma plage A1:C8 je cherche si a1 est vide puis a2 puis a3 a4 a5 a6 a7 a8 b1 b2 etc je veux trouver 3 cellules vides à suivre Si j'ai quelque chose en a1 et a3, a2 est seul vide donc ne m'intéress e pas si la première cellule vide est a7 et que a8 et b1 sont vides au ssi alors c'est OK sachant qu'il peut y avoir d'autres cellules remplies en suite. Je veux une suite de 3 cellules vides en commençant à regarder en a1 puis a2 a3 jusqu'à a8 puis b1 b2 jusqu'à b8 puis c1 c2 jusq u'à c8 Caroual
Jacquouille
Bonjour, Va falloir que Denis stimule sa boule de cristal car Excel balaie d'abord la ligne A1,B1,C1 puis, descend ensuite en A2,B2,C2, puis descend en A3,B3,C3 .... Je me réjouis de voir le résultat. Pure curiosité scientifique (???) -)) Jacques " Le vin est au repas ce que le parfum est à la femme." . a écrit dans le message de groupe de discussion : Le jeudi 21 mars 2019 12:32:18 UTC+1, MichD a écrit :
J'ai mal lu ta question : Dans la plage A1:C8, procédure pour trouver la première ligne vide totalement vide : '------------------------------ Sub test() Dim DerLig As Long With Worksheets("Feuil1") DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlNext).Row End With If DerLig = 9 Then MsgBox "Aucune ligne vide dans la plage de A1:C8" Else MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """ & DerLig End If End Sub '------------------------------ Si tu cherches la dernière ligne vide dans la même plage de cellule en supposant qu'il y en ait plus qu'une, modifie le paramètre dans la procédure. SearchDirection:=xlNext Par SearchDirection:=xlPrevious MichD
Ma demande n'était pas bien formulée Dans ma plage A1:C8 je cherche si a1 est vide puis a2 puis a3 a4 a5 a6 a7 a8 b1 b2 etc je veux trouver 3 cellules vides à suivre Si j'ai quelque chose en a1 et a3, a2 est seul vide donc ne m'intéresse pas si la première cellule vide est a7 et que a8 et b1 sont vides aussi alors c'est OK sachant qu'il peut y avoir d'autres cellules remplies ensuite. Je veux une suite de 3 cellules vides en commençant à regarder en a1 puis a2 a3 jusqu'à a8 puis b1 b2 jusqu'à b8 puis c1 c2 jusqu'à c8 Caroual
Bonjour,
Va falloir que Denis stimule sa boule de cristal car Excel balaie d'abord la
ligne A1,B1,C1 puis, descend ensuite en A2,B2,C2, puis descend en A3,B3,C3
....
Je me réjouis de voir le résultat. Pure curiosité scientifique (???) -))
Jacques
" Le vin est au repas ce que le parfum est à la femme."
.
a écrit dans le message de groupe de discussion :
e96eca2a-ee7f-44b9-840d-0d20707e1118@googlegroups.com...
Le jeudi 21 mars 2019 12:32:18 UTC+1, MichD a écrit :
J'ai mal lu ta question :
Dans la plage A1:C8, procédure pour trouver la première ligne vide
totalement vide :
'------------------------------
Sub test()
Dim DerLig As Long
With Worksheets("Feuil1")
DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _
SearchOrder:=xlByRows, SearchDirection:=xlNext).Row
End With
If DerLig = 9 Then
MsgBox "Aucune ligne vide dans la plage de A1:C8"
Else
MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """
& DerLig
End If
End Sub
'------------------------------
Si tu cherches la dernière ligne vide dans la même plage de cellule en
supposant qu'il y en ait plus qu'une, modifie le paramètre dans la
procédure.
SearchDirection:=xlNext
Par
SearchDirection:=xlPrevious
MichD
Ma demande n'était pas bien formulée
Dans ma plage A1:C8
je cherche si a1 est vide puis a2 puis a3 a4 a5 a6 a7 a8 b1 b2 etc
je veux trouver 3 cellules vides à suivre
Si j'ai quelque chose en a1 et a3, a2 est seul vide donc ne m'intéresse pas
si la première cellule vide est a7 et que a8 et b1 sont vides aussi alors
c'est OK sachant qu'il peut y avoir d'autres cellules remplies ensuite.
Je veux une suite de 3 cellules vides en commençant à regarder en a1 puis
a2 a3 jusqu'à a8 puis b1 b2 jusqu'à b8 puis c1 c2 jusqu'à c8
Caroual
Bonjour, Va falloir que Denis stimule sa boule de cristal car Excel balaie d'abord la ligne A1,B1,C1 puis, descend ensuite en A2,B2,C2, puis descend en A3,B3,C3 .... Je me réjouis de voir le résultat. Pure curiosité scientifique (???) -)) Jacques " Le vin est au repas ce que le parfum est à la femme." . a écrit dans le message de groupe de discussion : Le jeudi 21 mars 2019 12:32:18 UTC+1, MichD a écrit :
J'ai mal lu ta question : Dans la plage A1:C8, procédure pour trouver la première ligne vide totalement vide : '------------------------------ Sub test() Dim DerLig As Long With Worksheets("Feuil1") DerLig = .Range("A1:C9").Find("", LookIn:=xlFormulas, _ SearchOrder:=xlByRows, SearchDirection:=xlNext).Row End With If DerLig = 9 Then MsgBox "Aucune ligne vide dans la plage de A1:C8" Else MsgBox "Première ligne totalement vide dans la plage ""A1:C8 = """ & DerLig End If End Sub '------------------------------ Si tu cherches la dernière ligne vide dans la même plage de cellule en supposant qu'il y en ait plus qu'une, modifie le paramètre dans la procédure. SearchDirection:=xlNext Par SearchDirection:=xlPrevious MichD
Ma demande n'était pas bien formulée Dans ma plage A1:C8 je cherche si a1 est vide puis a2 puis a3 a4 a5 a6 a7 a8 b1 b2 etc je veux trouver 3 cellules vides à suivre Si j'ai quelque chose en a1 et a3, a2 est seul vide donc ne m'intéresse pas si la première cellule vide est a7 et que a8 et b1 sont vides aussi alors c'est OK sachant qu'il peut y avoir d'autres cellules remplies ensuite. Je veux une suite de 3 cellules vides en commençant à regarder en a1 puis a2 a3 jusqu'à a8 puis b1 b2 jusqu'à b8 puis c1 c2 jusqu'à c8 Caroual
MichD
Bonjour, Essaie ceci. Cette procédure énumère toutes les plages de cellules qui ont au moins 3 cellules consécutives vides, colonne par colonne. '------------------------------------------------- Sub test() Dim Rg As Range, Plg As Range, Are As Range, B As Long Dim A As Long, Nb As Long, R As Range, N As Long Dim P As Range, S As Long, Message As String 'adapte le nom de l'onglet de la feuille With Worksheets("Feuil1") 'La plage initiale. Set Rg = .Range("A1:C8") End With For A = 1 To Rg.Columns.Count Set Plg = Rg.Columns(A).SpecialCells(xlCellTypeBlanks) Nb = Plg.Areas.Count If Nb > 0 Then Set Are = Plg.Areas(1) End If If Not R Is Nothing And Are.Cells(1, 1).Row = 1 Then Set P = Union(Are, R) Set R = Nothing Message = Message & P.Address & vbCrLf N = 1 End If If N = 0 Then N = 1 Else N = N + 1 End If For B = N To Nb Set Are = Plg.Areas(B) If Are.Cells.Count >= 3 Then Message = Message & Are.Address & vbCrLf If Not R Is Nothing Then Set R = Nothing Else Set R = Are End If Next B = 0: N = 0 Next If Message <> "" Then MsgBox "Voici les plages qui ont au moins " & vbCrLf & _ "3 Cellules consécutives vides." & vbCrLf & vbCrLf & Message Else MsgBox "Aucune plage n'a 3 cellules consécutives vides." End If End Sub '------------------------------------------------- MichD
Bonjour,
Essaie ceci. Cette procédure énumère toutes les plages de cellules qui
ont au moins 3 cellules consécutives vides, colonne par colonne.
'-------------------------------------------------
Sub test()
Dim Rg As Range, Plg As Range, Are As Range, B As Long
Dim A As Long, Nb As Long, R As Range, N As Long
Dim P As Range, S As Long, Message As String
'adapte le nom de l'onglet de la feuille
With Worksheets("Feuil1")
'La plage initiale.
Set Rg = .Range("A1:C8")
End With
For A = 1 To Rg.Columns.Count
Set Plg = Rg.Columns(A).SpecialCells(xlCellTypeBlanks)
Nb = Plg.Areas.Count
If Nb > 0 Then
Set Are = Plg.Areas(1)
End If
If Not R Is Nothing And Are.Cells(1, 1).Row = 1 Then
Set P = Union(Are, R)
Set R = Nothing
Message = Message & P.Address & vbCrLf
N = 1
End If
If N = 0 Then
N = 1
Else
N = N + 1
End If
For B = N To Nb
Set Are = Plg.Areas(B)
If Are.Cells.Count >= 3 Then
Message = Message & Are.Address & vbCrLf
If Not R Is Nothing Then Set R = Nothing
Else
Set R = Are
End If
Next
B = 0: N = 0
Next
If Message <> "" Then
MsgBox "Voici les plages qui ont au moins " & vbCrLf & _
"3 Cellules consécutives vides." & vbCrLf & vbCrLf & Message
Else
MsgBox "Aucune plage n'a 3 cellules consécutives vides."
End If
End Sub
'-------------------------------------------------
Bonjour, Essaie ceci. Cette procédure énumère toutes les plages de cellules qui ont au moins 3 cellules consécutives vides, colonne par colonne. '------------------------------------------------- Sub test() Dim Rg As Range, Plg As Range, Are As Range, B As Long Dim A As Long, Nb As Long, R As Range, N As Long Dim P As Range, S As Long, Message As String 'adapte le nom de l'onglet de la feuille With Worksheets("Feuil1") 'La plage initiale. Set Rg = .Range("A1:C8") End With For A = 1 To Rg.Columns.Count Set Plg = Rg.Columns(A).SpecialCells(xlCellTypeBlanks) Nb = Plg.Areas.Count If Nb > 0 Then Set Are = Plg.Areas(1) End If If Not R Is Nothing And Are.Cells(1, 1).Row = 1 Then Set P = Union(Are, R) Set R = Nothing Message = Message & P.Address & vbCrLf N = 1 End If If N = 0 Then N = 1 Else N = N + 1 End If For B = N To Nb Set Are = Plg.Areas(B) If Are.Cells.Count >= 3 Then Message = Message & Are.Address & vbCrLf If Not R Is Nothing Then Set R = Nothing Else Set R = Are End If Next B = 0: N = 0 Next If Message <> "" Then MsgBox "Voici les plages qui ont au moins " & vbCrLf & _ "3 Cellules consécutives vides." & vbCrLf & vbCrLf & Message Else MsgBox "Aucune plage n'a 3 cellules consécutives vides." End If End Sub '------------------------------------------------- MichD
MichD
Une petite modification mineure. Donne un résultat plus homogène! La procédure retourne toutes les plages de cellules qui ont au moins 3 cellules consécutives vides et ce, colonne par colonne. '---------------------------------------- Sub Test() Dim Rg As Range, Plg As Range, Are As Range, B As Long Dim A As Long, Nb As Long, R As Range, N As Long Dim P As Range, S As Long, Message As String 'adapte le nom de l'onglet de la feuille With Worksheets("Feuil1") 'La plage initiale. Set Rg = .Range("A1:C8") End With For A = 1 To Rg.Columns.Count Set Plg = Rg.Columns(A).SpecialCells(xlCellTypeBlanks) Nb = Plg.Areas.Count If Nb > 0 Then Set Are = Plg.Areas(1) End If If Not R Is Nothing And Are.Cells(1, 1).Row = 1 Then Set P = Union(R, Are) Set R = Nothing Message = Message & P.Address & vbCrLf N = 1 End If If N = 0 Then N = 1 Else N = N + 1 End If For B = N To Nb Set Are = Plg.Areas(B) If Are.Cells.Count >= 3 Then Message = Message & Are.Address & vbCrLf Set R = Are End If Next B = 0: N = 0 Next If Message <> "" Then MsgBox "Voici les plages qui ont au moins " & vbCrLf & _ "3 Cellules consécutives vides." & vbCrLf & vbCrLf & Message Else MsgBox "Aucune plage n'a 3 cellules consécutives vides." End If End Sub '---------------------------------------- MichD
Une petite modification mineure. Donne un résultat plus homogène!
La procédure retourne toutes les plages de cellules qui ont au moins 3
cellules consécutives vides et ce, colonne par colonne.
'----------------------------------------
Sub Test()
Dim Rg As Range, Plg As Range, Are As Range, B As Long
Dim A As Long, Nb As Long, R As Range, N As Long
Dim P As Range, S As Long, Message As String
'adapte le nom de l'onglet de la feuille
With Worksheets("Feuil1")
'La plage initiale.
Set Rg = .Range("A1:C8")
End With
For A = 1 To Rg.Columns.Count
Set Plg = Rg.Columns(A).SpecialCells(xlCellTypeBlanks)
Nb = Plg.Areas.Count
If Nb > 0 Then
Set Are = Plg.Areas(1)
End If
If Not R Is Nothing And Are.Cells(1, 1).Row = 1 Then
Set P = Union(R, Are)
Set R = Nothing
Message = Message & P.Address & vbCrLf
N = 1
End If
If N = 0 Then
N = 1
Else
N = N + 1
End If
For B = N To Nb
Set Are = Plg.Areas(B)
If Are.Cells.Count >= 3 Then
Message = Message & Are.Address & vbCrLf
Set R = Are
End If
Next
B = 0: N = 0
Next
If Message <> "" Then
MsgBox "Voici les plages qui ont au moins " & vbCrLf & _
"3 Cellules consécutives vides." & vbCrLf & vbCrLf & Message
Else
MsgBox "Aucune plage n'a 3 cellules consécutives vides."
End If
End Sub
'----------------------------------------
Une petite modification mineure. Donne un résultat plus homogène! La procédure retourne toutes les plages de cellules qui ont au moins 3 cellules consécutives vides et ce, colonne par colonne. '---------------------------------------- Sub Test() Dim Rg As Range, Plg As Range, Are As Range, B As Long Dim A As Long, Nb As Long, R As Range, N As Long Dim P As Range, S As Long, Message As String 'adapte le nom de l'onglet de la feuille With Worksheets("Feuil1") 'La plage initiale. Set Rg = .Range("A1:C8") End With For A = 1 To Rg.Columns.Count Set Plg = Rg.Columns(A).SpecialCells(xlCellTypeBlanks) Nb = Plg.Areas.Count If Nb > 0 Then Set Are = Plg.Areas(1) End If If Not R Is Nothing And Are.Cells(1, 1).Row = 1 Then Set P = Union(R, Are) Set R = Nothing Message = Message & P.Address & vbCrLf N = 1 End If If N = 0 Then N = 1 Else N = N + 1 End If For B = N To Nb Set Are = Plg.Areas(B) If Are.Cells.Count >= 3 Then Message = Message & Are.Address & vbCrLf Set R = Are End If Next B = 0: N = 0 Next If Message <> "" Then MsgBox "Voici les plages qui ont au moins " & vbCrLf & _ "3 Cellules consécutives vides." & vbCrLf & vbCrLf & Message Else MsgBox "Aucune plage n'a 3 cellules consécutives vides." End If End Sub '---------------------------------------- MichD
MichD
Un fichier exemple : https://www.cjoint.com/c/ICwsNK8XD2j Prendre le temps de lire le commentaire dans la feuille de calcul. MichD
Un fichier exemple : https://www.cjoint.com/c/ICwsNK8XD2j
Prendre le temps de lire le commentaire dans la feuille de calcul.
Un fichier exemple : https://www.cjoint.com/c/ICwsNK8XD2j Prendre le temps de lire le commentaire dans la feuille de calcul. MichD
MichD
Le 2019-03-22 à 05:08, Jacquouille a écrit :
Bonjour, Va falloir que Denis stimule sa boule de cristal car Excel balaie d'abord la ligne A1,B1,C1 puis, descend ensuite en A2,B2,C2, puis descend en A3,B3,C3 .... Je me réjouis de voir le résultat. Pure curiosité scientifique (???) -))
Une version pour la vieille version de Jacquoille https://www.cjoint.com/c/ICwsYih0fZj Il faut apporter un bémol au commentaire, il est plus ou moins adapté à cette version d'Excel. N.B. Excel peut balayer dans le sens que l'on désire pourvu qu'on le lui demande gentiment! MichD
Le 2019-03-22 à 05:08, Jacquouille a écrit :
Bonjour,
Va falloir que Denis stimule sa boule de cristal car Excel balaie
d'abord la ligne A1,B1,C1 puis, descend ensuite en A2,B2,C2, puis
descend en A3,B3,C3 ....
Je me réjouis de voir le résultat. Pure curiosité scientifique (???) -))
Une version pour la vieille version de Jacquoille
https://www.cjoint.com/c/ICwsYih0fZj
Il faut apporter un bémol au commentaire, il est plus ou moins adapté à
cette version d'Excel.
N.B. Excel peut balayer dans le sens que l'on désire pourvu qu'on le lui
demande gentiment!
Bonjour, Va falloir que Denis stimule sa boule de cristal car Excel balaie d'abord la ligne A1,B1,C1 puis, descend ensuite en A2,B2,C2, puis descend en A3,B3,C3 .... Je me réjouis de voir le résultat. Pure curiosité scientifique (???) -))
Une version pour la vieille version de Jacquoille https://www.cjoint.com/c/ICwsYih0fZj Il faut apporter un bémol au commentaire, il est plus ou moins adapté à cette version d'Excel. N.B. Excel peut balayer dans le sens que l'on désire pourvu qu'on le lui demande gentiment! MichD
MichD
Le 2019-03-22 à 14:41, MichD a écrit :
Un fichier exemple : https://www.cjoint.com/c/ICwsNK8XD2j Prendre le temps de lire le commentaire dans la feuille de calcul. MichD
Encore une toute petite correction, ça demande beaucoup de petits tests afin de s'assurer de couvrir tous les cas de figures! https://www.cjoint.com/c/ICxaaG1oQIj MichD
Le 2019-03-22 à 14:41, MichD a écrit :
Un fichier exemple : https://www.cjoint.com/c/ICwsNK8XD2j
Prendre le temps de lire le commentaire dans la feuille de calcul.
MichD
Encore une toute petite correction, ça demande beaucoup de petits tests
afin de s'assurer de couvrir tous les cas de figures!
https://www.cjoint.com/c/ICxaaG1oQIj
Un fichier exemple : https://www.cjoint.com/c/ICwsNK8XD2j Prendre le temps de lire le commentaire dans la feuille de calcul. MichD
Encore une toute petite correction, ça demande beaucoup de petits tests afin de s'assurer de couvrir tous les cas de figures! https://www.cjoint.com/c/ICxaaG1oQIj MichD