Inserrer des lignes

yitte2008 Messages postés 4 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 7 juillet 2008 - 7 juil. 2008 à 16:14
yitte2008 Messages postés 4 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 7 juillet 2008 - 7 juil. 2008 à 17:48
Bonjour,

J'ai un petit souci. Je veux écrire un code sous  EXCEL qui me permet d'inserrer un nombre variable de lignes en fonction de la valeur lue dans une cellule dans laquelle j'aurai cliqué au départ. En rouge la ligne où le programme coince. Pouvez-vous n'aider à le débloquer? Y a t-il une façon plus simple de procéder?

Merci pour les différentes interventions.

Sub listen()
' Définition des variables
Dim No As Integer
Dim x As Integer
Dim Compt As Integer
' Initialisation des variables
x = 2
Compt = 1
No = ActiveCell.Value



Do While Cells(x, 9) <= No

Rows("x:x").Select


Range("Ax").Activate
Selection.insert Shift:=xlDown
Cells(x + 1, 9).Select
ActiveCell.FormulaR1C1 = "Compt"
Compt = Compt + 1
x = x + 1
Loop



End Sub

7 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juil. 2008 à 16:31
salut,

Sub listen()
' Définition des variables
Dim No As Integer
Dim x As Integer
Dim Compt As Integer
' Initialisation des
variables
x = 2
Compt = 1
No = ActiveCell.Value

Do While Cells(x, 9) <= No
Rows(x).Select
'Rows("x:x").Select
'pas entre guillemets, c'est variable à lire
'Range("A" & x).Activate 'inutile (et correction pour que tu
vois la différence)
Selection.insert Shift:=xlDown
Cells(x + 1, 9).Select
ActiveCell.FormulaR1C1 = "Compt"
Compt = Compt + 1
x = x + 1
Loop
~
<small>Mortalino ~ [code.aspx?ID=39466 Colorisation
automatique]</small>

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juil. 2008 à 16:35
ps : la variable Compt (et son incrémentation) dans ce contexte ne te sers à rien.

Avec ton erreur dans Rows(), je dirai que tu fais pareil avec le Activecell.FormulaR1C1
Fais plutôt (si j'ai bien compris ce que tu voulais) :
ActiveCell.Value = Compt

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
yitte2008 Messages postés 4 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 7 juillet 2008
7 juil. 2008 à 16:44
Merci pour ces réponses.

Mon intention est de numérotet les nouvelles lignes insérrées de façon automatique en sélectionnant une cellule (ici Nx+1) puis en y transferant la valeur courante de Compt.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juil. 2008 à 16:46
aavec
Cells(x + 1, 9).Value = Compt

ça suffit, pas besoin d'utiliser ta ligne en Select + celle du dessous

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yitte2008 Messages postés 4 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 7 juillet 2008
7 juil. 2008 à 17:15
J'ai essayé les différentes options proposées mais il y a toujours un os. L'idéal serait de recopier la (même) ligne courante No fois, No étant donné par la valeur de la cellule sélectionnée.
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
7 juil. 2008 à 17:20
humm en fait je comprends pas trop ce que tu veux (explications + code un peut contradictoire)

Pour info, avant de faire un Insert, il faut copier (copy) une valeur avant.

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
yitte2008 Messages postés 4 Date d'inscription lundi 7 juillet 2008 Statut Membre Dernière intervention 7 juillet 2008
7 juil. 2008 à 17:48
Désolé pour le dérangement,
En fait mon code est en deux parties:
1- Inserrer No lignes à la suite d'une cellule sélectionnée et qui contient la valeur No
Le code pour cela est : (.value était omis)
Do While Cells(x, 9).Value <= No

Rows(x).Select
Selection.insert Shift:=xlDown

2- Ensuite je voudrais que pour chaque ligne inserrée, mettre dans la cellule (x,9) courante une numérotation, pour ne pas revenir renuméroter après. J'ai pensé pour cela au code:
Cells(x + 1, 9).Value = Compt
Compt = Compt + 1
x = x + 1

Je ne sais pas si j'ai été suffisamment explicite.
Merci encore pour la sollicitude...
0
Rejoignez-nous