OVH Cloud OVH Cloud

Insertion et suppression automatique Bis

2 réponses
Avatar
eis
Bonjour à tous
j'ai déjà posé le problème ci dessous et Isabelle ma gentiment proposée ce
code
mais quand je l'exécute j'ai une errreur de compilation ou de
syntaxe.Quelqu'un
a t'il une solution à me proposer?


je suis sous excel 97 et je cherche un moyen pour automatiser une manip.
pour un tableau commençant en A1, si une ligne dépasse 8 colonnes, comment
1)copier cette ligne
2)insérer une nouvelle ligne en dessous
3)la coller dans ma nouvelle ligne insérée et supprimer la 8ème case de
cette nouvelle ligne
4)recommencer les trois premières actions tant que ma nouvelle ligne collée
dépasse les 8 colonnes! ouf!

Sub macro1()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 8).Value <> Empty Then
Rows(i).Insert Shift:=xlDown
Range(Cells(i + 1, 1), Cells(i + 1, 8)).Copy Destination:=Cells(i, 1)
Cells(i + 1, 8).Clear
End If
Next i
End Sub

isabelle

2 réponses

Avatar
AV
Essaye ça :
Sub zz_Insert()
Dim i As Long
For x = Range("A65536").End(xlUp).Row To 2 Step -1
test = Application.CountA(Range("I" & x - 1 & ":IV" & x - 1))
If test > 0 Then
Range("I" & x - 1 & ":IV" & x - 1) = ""
For y = 1 To test
Rows(x).Insert
Next
End If
Next
End Sub

AV

"eis" a écrit dans le message news:

Bonjour à tous
j'ai déjà posé le problème ci dessous et Isabelle ma gentiment proposée ce
code
mais quand je l'exécute j'ai une errreur de compilation ou de
syntaxe.Quelqu'un
a t'il une solution à me proposer?


je suis sous excel 97 et je cherche un moyen pour automatiser une manip.
pour un tableau commençant en A1, si une ligne dépasse 8 colonnes, comment
1)copier cette ligne
2)insérer une nouvelle ligne en dessous
3)la coller dans ma nouvelle ligne insérée et supprimer la 8ème case de
cette nouvelle ligne
4)recommencer les trois premières actions tant que ma nouvelle ligne collée
dépasse les 8 colonnes! ouf!

Sub macro1()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 8).Value <> Empty Then
Rows(i).Insert Shift:=xlDown
Range(Cells(i + 1, 1), Cells(i + 1, 8)).Copy Destination:Îlls(i, 1)
Cells(i + 1, 8).Clear
End If
Next i
End Sub

isabelle






Avatar
eis
Merci alain
je ne voudrais pas jouer les ...(je sais j'y arrive quand même), mais cette
fois le rouge commence à If test>0 Then,
puis sur la ligne For y =1 To test,
puis Next,
et pour finir End If
"AV" a écrit dans le message de news:

Essaye ça :
Sub zz_Insert()
Dim i As Long
For x = Range("A65536").End(xlUp).Row To 2 Step -1
test = Application.CountA(Range("I" & x - 1 & ":IV" & x - 1))
If test > 0 Then
Range("I" & x - 1 & ":IV" & x - 1) = ""
For y = 1 To test
Rows(x).Insert
Next
End If
Next
End Sub

AV

"eis" a écrit dans le message news:

Bonjour à tous
j'ai déjà posé le problème ci dessous et Isabelle ma gentiment proposée
ce


code
mais quand je l'exécute j'ai une errreur de compilation ou de
syntaxe.Quelqu'un
a t'il une solution à me proposer?


je suis sous excel 97 et je cherche un moyen pour automatiser une manip.
pour un tableau commençant en A1, si une ligne dépasse 8 colonnes,
comment


1)copier cette ligne
2)insérer une nouvelle ligne en dessous
3)la coller dans ma nouvelle ligne insérée et supprimer la 8ème case de
cette nouvelle ligne
4)recommencer les trois premières actions tant que ma nouvelle ligne
collée


dépasse les 8 colonnes! ouf!

Sub macro1()
Dim i As Long
For i = Range("A65536").End(xlUp).Row To 1 Step -1
If Cells(i, 8).Value <> Empty Then
Rows(i).Insert Shift:=xlDown
Range(Cells(i + 1, 1), Cells(i + 1, 8)).Copy Destination:Îlls(i, 1)
Cells(i + 1, 8).Clear
End If
Next i
End Sub

isabelle