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

Une boucle en VBA ?

11 réponses
Avatar
alain Lebayle
Bonsoir,
J'ai un tableau avec des valeurs de A2 à A..., je souhaite avoir de B2 à
B... des chiffres de 1 à ... suivant ce qu'il y a dans la colonne A2 à A...
en non vide

Je vous remercie beaucoup
Alain

10 réponses

1 2
Avatar
LSteph
Bonsoir,

(Sans vba tu tries sur A ton tableau et tu incrémente B)

En vba

Sub azb()
dim c as range , i as long
application.screenupdatingúlse
For each c in Range("b2:b"&[a65536].end(xlup).row)
if c.offset(0,-1)<>"" then
i=i+1
c=i
end if
next
end sub

'lSteph

alain Lebayle a écrit :
Bonsoir,
J'ai un tableau avec des valeurs de A2 à A..., je souhaite avoir de B2 à
B... des chiffres de 1 à ... suivant ce qu'il y a dans la colonne A2 à A...
en non vide

Je vous remercie beaucoup
Alain




Avatar
JPMonnier
Bonsoir,
Sub Chiff()
x = 1
For Each n In [a2:a20]
If n <> "" Then
n.Offset(0, 1) = x
x = x + 1
End If
Next
End sub
--
Cordialement

"alain Lebayle" a écrit dans le message de
news:48f4db38$0$7932$
Bonsoir,
J'ai un tableau avec des valeurs de A2 à A..., je souhaite avoir de B2 à
B... des chiffres de 1 à ... suivant ce qu'il y a dans la colonne A2 à
A... en non vide

Je vous remercie beaucoup
Alain




Avatar
Philippe.R
Bonsoir,
Outre la réponse de mon "petit" camarade, tu peux aussi jouer avec, en B2,
quelque chose du genre :
=ligne()*(a2<>"")
puis double clic sur la poignée de recopie
--
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
"alain Lebayle" a écrit dans le message de
news:48f4db38$0$7932$
Bonsoir,
J'ai un tableau avec des valeurs de A2 à A..., je souhaite avoir de B2 à
B... des chiffres de 1 à ... suivant ce qu'il y a dans la colonne A2 à
A... en non vide

Je vous remercie beaucoup
Alain




Avatar
LSteph
Bonsoir Philippe,

Voilà une formule qui épaterait même notre "grand" camarade Mgr.Abile

;-)

--
lSteph

Philippe.R a écrit :
Bonsoir,
Outre la réponse de mon "petit" camarade, tu peux aussi jouer avec, en
B2, quelque chose du genre :
=ligne()*(a2<>"")
puis double clic sur la poignée de recopie


Avatar
Philippe.R
<{;o)=))

"LSteph" a écrit dans le message de
news:
Bonsoir Philippe,

Voilà une formule qui épaterait même notre "grand" camarade Mgr.Abile

;-)

--
lSteph

Philippe.R a écrit :
Bonsoir,
Outre la réponse de mon "petit" camarade, tu peux aussi jouer avec, en
B2, quelque chose du genre :
=ligne()*(a2<>"")
puis double clic sur la poignée de recopie




Avatar
michdenis
En VBA sans boucle ...

Sub test()
Dim Rg As Range, V
With Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = .SpecialCells(xlCellTypeConstants, 23).Cells
Rg.Offset(, 1).Formula = "=CountA($A$1:A" & Rg.Row & " )"
V = .Value
.Value = V
End With
End Sub




"alain Lebayle" a écrit dans le message de
news: 48f4db38$0$7932$
Bonsoir,
J'ai un tableau avec des valeurs de A2 à A..., je souhaite avoir de B2 à
B... des chiffres de 1 à ... suivant ce qu'il y a dans la colonne A2 à A...
en non vide

Je vous remercie beaucoup
Alain
Avatar
michdenis
| puis double clic sur la poignée de recopie

Comme il y a des cellules vides en colonne A,
ça prendrait plus qu'un double-clic ...

Deuxièmement, il faudrait transformer ces formules en constantes !
Avatar
michdenis
Pour débuter en A2 et B2, il faut modifier comme ceci :

Sub test()
Dim Rg As Range, V
With Range("A2:A" & Range("A65536").End(xlUp).Row)
Set Rg = .SpecialCells(xlCellTypeConstants, 23).Cells
Rg.Offset(, 1).Formula = "=CountA($A$2:A" & Rg.Row & " )"
V = .Value
.Value = V
End With
End Sub




"michdenis" a écrit dans le message de news:
%23$
En VBA sans boucle ...

Sub test()
Dim Rg As Range, V
With Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = .SpecialCells(xlCellTypeConstants, 23).Cells
Rg.Offset(, 1).Formula = "=CountA($A$1:A" & Rg.Row & " )"
V = .Value
.Value = V
End With
End Sub




"alain Lebayle" a écrit dans le message de
news: 48f4db38$0$7932$
Bonsoir,
J'ai un tableau avec des valeurs de A2 à A..., je souhaite avoir de B2 à
B... des chiffres de 1 à ... suivant ce qu'il y a dans la colonne A2 à A...
en non vide

Je vous remercie beaucoup
Alain
Avatar
Philippe.R
P'tet ben que oui...

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

| puis double clic sur la poignée de recopie

Comme il y a des cellules vides en colonne A,
ça prendrait plus qu'un double-clic ...

Deuxièmement, il faudrait transformer ces formules en constantes !





Avatar
michdenis
Il y avait une coquille à la procédure publiée...
Le "offset" était absent à ces lignes de code :

V = .Offset(, 1).Value
.Offset(, 1).Value = V


Voici la procédure avec la modification apportée :
'--------------------------------
Sub test()
Dim V As Variant
With Range("A2:A" & Range("A65536").End(xlUp).Row)
With .SpecialCells(xlCellTypeConstants, 23).Cells
.Offset(, 1).Formula = "=CountA($A$2:A" & .Row & " )"
End With
V = .Offset(, 1).Value
.Offset(, 1).Value = V
End With
End Sub
'--------------------------------




"michdenis" a écrit dans le message de news:
%23$
En VBA sans boucle ...

Sub test()
Dim Rg As Range, V
With Range("A1:A" & Range("A65536").End(xlUp).Row)
Set Rg = .SpecialCells(xlCellTypeConstants, 23).Cells
Rg.Offset(, 1).Formula = "=CountA($A$1:A" & Rg.Row & " )"
V = .Value
.Value = V
End With
End Sub




"alain Lebayle" a écrit dans le message de
news: 48f4db38$0$7932$
Bonsoir,
J'ai un tableau avec des valeurs de A2 à A..., je souhaite avoir de B2 à
B... des chiffres de 1 à ... suivant ce qu'il y a dans la colonne A2 à A...
en non vide

Je vous remercie beaucoup
Alain
1 2