Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA : numérotation incrémentée de plages vides

6 réponses
Avatar
Domi
Bonsoir à tous,
Dans la colonne A j'ai des valeurs ou des cellules vides.
Je voudrais numéroter les plages de cellules vides de la colonne A du haut
vers le bas en reprenant à 0 à chaque fois qu'une cellule pleine est
rencontrée.
La première cellule à prendre en compte et A5 la dernière est Ax où x est la
dernière cellule contenant une valeur dans la colonne F
Nota: la numérotation peut être faite soit directement dans les cellules
vides de la colonne A soit dans la colonne B.
Exemple

A5 plein ne rien faire
A6 vide mettre 1
A7 Vide mettre 2
A8 vide mettre 3
A9 plein ne rien faire
A10 vide mettre 1
A11 plein ne rien faire
A12 vide mettre 1
A13 Vide mettre 2
A14 vide mettre 3
A15 vide mettre 4
A16 plein ne rien faire
A17 plein ne rien faire
A18 plein ne rien faire
A19 vide mettre 1
A20 Vide mettre 2
A21 plein ne rien faire
Etc...jusqu'à A500 si la dernière valeur de la colonne F est sur la ligne
500

Merci pour votre aide
Domi

6 réponses

Avatar
Philippe.R
Bonsoir,
Le code ci dessous, à coller dans un module ordinaire, numérote de manière
incrémentée les cellules des différentes plages vides de la colonne A
situées entre la ligne 5 et la dernière cellule renseignée de ladite colonne
:

Sub numplag()
'MPFE le 07/02/2008
Dim deRLig As Long, i As Long, cPt As Long
deRLig = Range("a6500").End(xlUp).Row
cPt = 1
For i = 5 To deRLig
If Cells(i, 1).Value = "" Then
Cells(i, 1).Value = cPt
cPt = cPt + 1
Else
cPt = 1
End If
Next i
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Domi" a écrit dans le message de
news:
Bonsoir à tous,
Dans la colonne A j'ai des valeurs ou des cellules vides.
Je voudrais numéroter les plages de cellules vides de la colonne A du haut
vers le bas en reprenant à 0 à chaque fois qu'une cellule pleine est
rencontrée.
La première cellule à prendre en compte et A5 la dernière est Ax où x est
la dernière cellule contenant une valeur dans la colonne F
Nota: la numérotation peut être faite soit directement dans les cellules
vides de la colonne A soit dans la colonne B.
Exemple

A5 plein ne rien faire
A6 vide mettre 1
A7 Vide mettre 2
A8 vide mettre 3
A9 plein ne rien faire
A10 vide mettre 1
A11 plein ne rien faire
A12 vide mettre 1
A13 Vide mettre 2
A14 vide mettre 3
A15 vide mettre 4
A16 plein ne rien faire
A17 plein ne rien faire
A18 plein ne rien faire
A19 vide mettre 1
A20 Vide mettre 2
A21 plein ne rien faire
Etc...jusqu'à A500 si la dernière valeur de la colonne F est sur la ligne
500

Merci pour votre aide
Domi




Avatar
MichDenis
Pour le plaisir, tu peux coller ce code
dans le module feuille où l'action se déroule :

'------------------------------
Sub test_final()
Dim Col As Range, Rg As Range
With Me
For Each Col In .Range("A5:B20").Columns
derlig = Cells(65536, Col.Column).End(xlUp).Row
With Range(Cells(5, Col.Column), Cells(derlig, Col.Column))
Set Rg = .SpecialCells(xlCellTypeConstants, 23)
Range(Rg.Offset(1).Address(0, 0)) = 1
Set Rg = .SpecialCells(xlCellTypeBlanks)
Range(Rg.Address(0, 0)).Formula = "=1+" & _
Range(Rg(1).Offset(-1).Address(0, 0)).Address(0, 0)
.Rows(.Rows.Count + 1) = ""
End With
Next
End With
End Sub
'------------------------------




"Domi" a écrit dans le message de news:
Bonsoir à tous,
Dans la colonne A j'ai des valeurs ou des cellules vides.
Je voudrais numéroter les plages de cellules vides de la colonne A du haut
vers le bas en reprenant à 0 à chaque fois qu'une cellule pleine est
rencontrée.
La première cellule à prendre en compte et A5 la dernière est Ax où x est la
dernière cellule contenant une valeur dans la colonne F
Nota: la numérotation peut être faite soit directement dans les cellules
vides de la colonne A soit dans la colonne B.
Exemple

A5 plein ne rien faire
A6 vide mettre 1
A7 Vide mettre 2
A8 vide mettre 3
A9 plein ne rien faire
A10 vide mettre 1
A11 plein ne rien faire
A12 vide mettre 1
A13 Vide mettre 2
A14 vide mettre 3
A15 vide mettre 4
A16 plein ne rien faire
A17 plein ne rien faire
A18 plein ne rien faire
A19 vide mettre 1
A20 Vide mettre 2
A21 plein ne rien faire
Etc...jusqu'à A500 si la dernière valeur de la colonne F est sur la ligne
500

Merci pour votre aide
Domi
Avatar
MichDenis
Un petit oubli :

Sub test_final()
Dim Col As Range, Rg As Range, T
With Me
For Each Col In .Range("A5:B20").Columns
derlig = Cells(65536, Col.Column).End(xlUp).Row
With Range(Cells(5, Col.Column), Cells(derlig, Col.Column))
Set Rg = .SpecialCells(xlCellTypeConstants, 23)
Range(Rg.Offset(1).Address(0, 0)) = 1
Set Rg = .SpecialCells(xlCellTypeBlanks)
Range(Rg.Address(0, 0)).Formula = "=1+" & _
Range(Rg(1).Offset(-1).Address(0, 0)).Address(0, 0)
.Rows(.Rows.Count + 1) = ""
T = .Value: .Value = T
End With
Next
End With
End Sub



"MichDenis" a écrit dans le message de news:

Pour le plaisir, tu peux coller ce code
dans le module feuille où l'action se déroule :

'------------------------------
Sub test_final()
Dim Col As Range, Rg As Range
With Me
For Each Col In .Range("A5:B20").Columns
derlig = Cells(65536, Col.Column).End(xlUp).Row
With Range(Cells(5, Col.Column), Cells(derlig, Col.Column))
Set Rg = .SpecialCells(xlCellTypeConstants, 23)
Range(Rg.Offset(1).Address(0, 0)) = 1
Set Rg = .SpecialCells(xlCellTypeBlanks)
Range(Rg.Address(0, 0)).Formula = "=1+" & _
Range(Rg(1).Offset(-1).Address(0, 0)).Address(0, 0)
.Rows(.Rows.Count + 1) = ""
End With
Next
End With
End Sub
'------------------------------




"Domi" a écrit dans le message de news:
Bonsoir à tous,
Dans la colonne A j'ai des valeurs ou des cellules vides.
Je voudrais numéroter les plages de cellules vides de la colonne A du haut
vers le bas en reprenant à 0 à chaque fois qu'une cellule pleine est
rencontrée.
La première cellule à prendre en compte et A5 la dernière est Ax où x est la
dernière cellule contenant une valeur dans la colonne F
Nota: la numérotation peut être faite soit directement dans les cellules
vides de la colonne A soit dans la colonne B.
Exemple

A5 plein ne rien faire
A6 vide mettre 1
A7 Vide mettre 2
A8 vide mettre 3
A9 plein ne rien faire
A10 vide mettre 1
A11 plein ne rien faire
A12 vide mettre 1
A13 Vide mettre 2
A14 vide mettre 3
A15 vide mettre 4
A16 plein ne rien faire
A17 plein ne rien faire
A18 plein ne rien faire
A19 vide mettre 1
A20 Vide mettre 2
A21 plein ne rien faire
Etc...jusqu'à A500 si la dernière valeur de la colonne F est sur la ligne
500

Merci pour votre aide
Domi
Avatar
MichDenis
Ceci correspond à la plage de cellules que tu veux traiter
Colonne A à F

Tu peux placer ce code dans le module de ton choix, il
s'agit simplement de bien déterminer le nom de l'objet "Feuil"
sur laquelle le code doit s'appliquer

Cette version est plus simple... et plus flexible !

'-----------------------------------------
Sub test()

Dim Col As Range, Rg As Range, T

On Error Resume Next
Application.ScreenUpdating = False
With Feuil1 ' à déterminer
For Each Col In .Range("A:F").Columns
derlig = .Cells(65536, Col.Column).End(xlUp).Row
If derlig <= 5 Then Exit Sub
With .Range(.Cells(5, Col.Column), .Cells(derlig, Col.Column))
Set Rg = .SpecialCells(xlCellTypeConstants, 23)
Rg.Offset(1) = 1
Set Rg = .SpecialCells(xlCellTypeBlanks)
Rg.Formula = "=1+" & Rg(1).Offset(-1).Address(0, 0)
.Rows(.Rows.Count + 1) = "": T = .Value: .Value = T
End With
Next
End With
End Sub
'---------------------------------------






"MichDenis" a écrit dans le message de news:
%
Un petit oubli :

Sub test_final()
Dim Col As Range, Rg As Range, T
With Me
For Each Col In .Range("A5:B20").Columns
derlig = Cells(65536, Col.Column).End(xlUp).Row
With Range(Cells(5, Col.Column), Cells(derlig, Col.Column))
Set Rg = .SpecialCells(xlCellTypeConstants, 23)
Range(Rg.Offset(1).Address(0, 0)) = 1
Set Rg = .SpecialCells(xlCellTypeBlanks)
Range(Rg.Address(0, 0)).Formula = "=1+" & _
Range(Rg(1).Offset(-1).Address(0, 0)).Address(0, 0)
.Rows(.Rows.Count + 1) = ""
T = .Value: .Value = T
End With
Next
End With
End Sub



"MichDenis" a écrit dans le message de news:

Pour le plaisir, tu peux coller ce code
dans le module feuille où l'action se déroule :

'------------------------------
Sub test_final()
Dim Col As Range, Rg As Range
With Me
For Each Col In .Range("A5:B20").Columns
derlig = Cells(65536, Col.Column).End(xlUp).Row
With Range(Cells(5, Col.Column), Cells(derlig, Col.Column))
Set Rg = .SpecialCells(xlCellTypeConstants, 23)
Range(Rg.Offset(1).Address(0, 0)) = 1
Set Rg = .SpecialCells(xlCellTypeBlanks)
Range(Rg.Address(0, 0)).Formula = "=1+" & _
Range(Rg(1).Offset(-1).Address(0, 0)).Address(0, 0)
.Rows(.Rows.Count + 1) = ""
End With
Next
End With
End Sub
'------------------------------




"Domi" a écrit dans le message de news:
Bonsoir à tous,
Dans la colonne A j'ai des valeurs ou des cellules vides.
Je voudrais numéroter les plages de cellules vides de la colonne A du haut
vers le bas en reprenant à 0 à chaque fois qu'une cellule pleine est
rencontrée.
La première cellule à prendre en compte et A5 la dernière est Ax où x est la
dernière cellule contenant une valeur dans la colonne F
Nota: la numérotation peut être faite soit directement dans les cellules
vides de la colonne A soit dans la colonne B.
Exemple

A5 plein ne rien faire
A6 vide mettre 1
A7 Vide mettre 2
A8 vide mettre 3
A9 plein ne rien faire
A10 vide mettre 1
A11 plein ne rien faire
A12 vide mettre 1
A13 Vide mettre 2
A14 vide mettre 3
A15 vide mettre 4
A16 plein ne rien faire
A17 plein ne rien faire
A18 plein ne rien faire
A19 vide mettre 1
A20 Vide mettre 2
A21 plein ne rien faire
Etc...jusqu'à A500 si la dernière valeur de la colonne F est sur la ligne
500

Merci pour votre aide
Domi
Avatar
Philippe.R
Au temps pour moi, à corriger ainsi :

Sub numplag()
'MPFE le 07/02/2008
Dim deRLig As Long, i As Long, cPt As Long
deRLig = Range("F6500").End(xlUp).Row
cPt = 1
For i = 5 To deRLig
If Cells(i, 6).Value = "" Then
Cells(i, 1).Value = cPt
cPt = cPt + 1
Else
cPt = 1
End If
Next i
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:
Bonsoir,
Le code ci dessous, à coller dans un module ordinaire, numérote de manière
incrémentée les cellules des différentes plages vides de la colonne A
situées entre la ligne 5 et la dernière cellule renseignée de ladite
colonne :

Sub numplag()
'MPFE le 07/02/2008
Dim deRLig As Long, i As Long, cPt As Long
deRLig = Range("a6500").End(xlUp).Row
cPt = 1
For i = 5 To deRLig
If Cells(i, 1).Value = "" Then
Cells(i, 1).Value = cPt
cPt = cPt + 1
Else
cPt = 1
End If
Next i
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Domi" a écrit dans le message de
news:
Bonsoir à tous,
Dans la colonne A j'ai des valeurs ou des cellules vides.
Je voudrais numéroter les plages de cellules vides de la colonne A du
haut vers le bas en reprenant à 0 à chaque fois qu'une cellule pleine est
rencontrée.
La première cellule à prendre en compte et A5 la dernière est Ax où x est
la dernière cellule contenant une valeur dans la colonne F
Nota: la numérotation peut être faite soit directement dans les cellules
vides de la colonne A soit dans la colonne B.
Exemple

A5 plein ne rien faire
A6 vide mettre 1
A7 Vide mettre 2
A8 vide mettre 3
A9 plein ne rien faire
A10 vide mettre 1
A11 plein ne rien faire
A12 vide mettre 1
A13 Vide mettre 2
A14 vide mettre 3
A15 vide mettre 4
A16 plein ne rien faire
A17 plein ne rien faire
A18 plein ne rien faire
A19 vide mettre 1
A20 Vide mettre 2
A21 plein ne rien faire
Etc...jusqu'à A500 si la dernière valeur de la colonne F est sur la ligne
500

Merci pour votre aide
Domi







Avatar
Domi
No pb, j'avais fait la correction ;o)
Merci beaucoup
Domi

"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de news:
eGWrz%
Au temps pour moi, à corriger ainsi :

Sub numplag()
'MPFE le 07/02/2008
Dim deRLig As Long, i As Long, cPt As Long
deRLig = Range("F6500").End(xlUp).Row
cPt = 1
For i = 5 To deRLig
If Cells(i, 6).Value = "" Then
Cells(i, 1).Value = cPt
cPt = cPt + 1
Else
cPt = 1
End If
Next i
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Philippe.R" <AS_rauphil_chez_wanadoo.fr> a écrit dans le message de
news:
Bonsoir,
Le code ci dessous, à coller dans un module ordinaire, numérote de
manière incrémentée les cellules des différentes plages vides de la
colonne A situées entre la ligne 5 et la dernière cellule renseignée de
ladite colonne :

Sub numplag()
'MPFE le 07/02/2008
Dim deRLig As Long, i As Long, cPt As Long
deRLig = Range("a6500").End(xlUp).Row
cPt = 1
For i = 5 To deRLig
If Cells(i, 1).Value = "" Then
Cells(i, 1).Value = cPt
cPt = cPt + 1
Else
cPt = 1
End If
Next i
End Sub

--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Domi" a écrit dans le message de
news:
Bonsoir à tous,
Dans la colonne A j'ai des valeurs ou des cellules vides.
Je voudrais numéroter les plages de cellules vides de la colonne A du
haut vers le bas en reprenant à 0 à chaque fois qu'une cellule pleine
est rencontrée.
La première cellule à prendre en compte et A5 la dernière est Ax où x
est la dernière cellule contenant une valeur dans la colonne F
Nota: la numérotation peut être faite soit directement dans les cellules
vides de la colonne A soit dans la colonne B.
Exemple

A5 plein ne rien faire
A6 vide mettre 1
A7 Vide mettre 2
A8 vide mettre 3
A9 plein ne rien faire
A10 vide mettre 1
A11 plein ne rien faire
A12 vide mettre 1
A13 Vide mettre 2
A14 vide mettre 3
A15 vide mettre 4
A16 plein ne rien faire
A17 plein ne rien faire
A18 plein ne rien faire
A19 vide mettre 1
A20 Vide mettre 2
A21 plein ne rien faire
Etc...jusqu'à A500 si la dernière valeur de la colonne F est sur la
ligne 500

Merci pour votre aide
Domi