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

Le
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
Etcjusqu'à A500 si la dernière valeur de la colonne F est sur la ligne
500

Merci pour votre aide
Domi
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #5153581
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" 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




MichDenis
Le #5153131
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" 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
MichDenis
Le #5153091
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"
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" 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
MichDenis
Le #5153051
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" %
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"
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" 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
Philippe.R
Le #5153041
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" 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" 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







Domi
Le #5279751
No pb, j'avais fait la correction ;o)
Merci beaucoup
Domi

"Philippe.R" 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" 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" 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










Publicité
Poster une réponse
Anonyme