Code VBA pour inserer 4 lignes sous une condi

Fermé
lazvb Messages postés 4 Date d'inscription jeudi 9 juin 2011 Statut Membre Dernière intervention 10 juin 2011 - 9 juin 2011 à 17:50
lazvb Messages postés 4 Date d'inscription jeudi 9 juin 2011 Statut Membre Dernière intervention 10 juin 2011 - 10 juin 2011 à 16:18
Bonjour

j'essaye de trouver le code sous VB pour une macro si une cellule contient 5BU qui se trouve dans la colonne f, et qui me permet:

* d'insérer en dessous 4 lignes,
* de remplacer dans la colonne f, la premiére cellule 5BU par 1 puis sur les lignes insérées tjrs dans la col f 2 3 4 5;

* Et dans la colonne c, il y a un montant correspondant à la cellule 5BU que je souhaite répartir sur les lignes insérées à raison de 25% pour 1 2 3

et 12,5% pour 4 et 5.

* et enfin dans la colonne k copier la cellule correspondant à 5BU dans les 4 cellules insérées en dessous

voila un petit shema de ma feuille:

colonne C Colonne F Colonne K

1000 5BU JE VOUS REMERCIE

RESULTAT ESPERE

colonne C Colonne F Colonne K

250 1 JE VOUS REMERCIE
250 2 JE VOUS REMERCIE
250 3 JE VOUS REMERCIE
125 4 JE VOUS REMERCIE
125 5 JE VOUS REMERCIE


JE VOUS REMERCIE PAR AVANCE, car ca m'aiderai bcp dans ma feuille qui m'eviterai un travail manuelle.
A voir également:

4 réponses

melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
10 juin 2011 à 08:47
Bonjour,

sub inerserlignes ()

sheets("feuilleoutuveuxagor").select 'remplaces feuilleoutuveuxagir par ton nom de feuille
i = 1 'va commencer la recherche en 1ère ligne de la colonne F

do while cells(i,6) <> "" ' va rechercher à la ligne i dans la colonne F. Attention, il ne doit pas y avoir de trou dans ta colonne. Si tel est le cas remplace 6 par le chiffre d'une colonne qui est toujours remplie

if cells(i,6) = "5BU"
rows(i).copy
range(rows(i+1),rows(i+4)).select
Selection.Insert Shift:=xlDown
cells(i,6) = 1
cells(i+1,6) = 2
cells(i+2,6) = 3
cells(i+3,6) = 4
cells(i+4,6) = 5
range(cells(i,3),cells(i+2,3)) = "25%"
range(cells(i+3,3),cells(i+4,3)) = "12,5%"

i=i+4
end if
i=i+1
loop

end sub
0
lazvb Messages postés 4 Date d'inscription jeudi 9 juin 2011 Statut Membre Dernière intervention 10 juin 2011
10 juin 2011 à 11:42
Bonjour Mélanie 1324

Je te remercie pour ta réponse

effectivement dans la colonne f il y a des trou, et je l'ai remplacé par la col M, et j'ai remplacé ds le code le 6 par 13, (nom de ma feuille est Trait Integ )

mais il me sort erreur de syntaxe, STP si tu peux jeter un coup d'oeil



Sub inerserlignes() ici selectionner en jaune

Sheets("Trait Integ").Select 'remplaces feuilleoutuveuxagir par ton nom de feuille
i = 1 'va commencer la recherche en 1ère ligne de la colonne F

Do While Cells(i, 13) <> "" ' va rechercher à la ligne i dans la colonne M. Attention, il ne doit pas y avoir de trou dans ta colonne. Si tel est le cas remplace 6 par le chiffre d'une colonne qui est toujours remplie

if cells(i,13) = "5BU" ici la couleur de la police en rouge

Rows(i).Copy
Range(Rows(i + 1), Rows(i + 4)).Select
Selection.Insert Shift:=xlDown
Cells(i, 13) = 1
Cells(i + 1, 13) = 2
Cells(i + 2, 13) = 3
Cells(i + 3, 13) = 4
Cells(i + 4, 13) = 5
Range(Cells(i, 3), Cells(i + 2, 3)) = "25%"
Range(Cells(i + 3, 3), Cells(i + 4, 3)) = "12,5%"

i = i + 4
End If
i = i + 1
Loop

End Sub


je te remercie
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
10 juin 2011 à 14:14
Sub inerserlignes() ici selectionner en jaune

Sheets("Trait Integ").Select 'remplaces feuilleoutuveuxagir par ton nom de feuille
i = 1 'va commencer la recherche en 1ère ligne de la colonne F

Do While Cells(i, 13) <> "" ' va rechercher à la ligne i dans la colonne M. Attention, il ne doit pas y avoir de trou dans ta colonne. Si tel est le cas remplace 6 par le chiffre d'une colonne qui est toujours remplie

if cells(i,13) = "5BU" then 'ici la couleur de la police en rouge

Rows(i).Copy
Range(Rows(i + 1), Rows(i + 4)).Select
Selection.Insert Shift:=xlDown
Cells(i, 13) = 1
Cells(i + 1, 13) = 2
Cells(i + 2, 13) = 3
Cells(i + 3, 13) = 4
Cells(i + 4, 13) = 5
Range(Cells(i, 3), Cells(i + 2, 3)) = "25%"
Range(Cells(i + 3, 3), Cells(i + 4, 3)) = "12,5%"

i = i + 4
End If
i = i + 1
Loop

End Sub
0
lazvb Messages postés 4 Date d'inscription jeudi 9 juin 2011 Statut Membre Dernière intervention 10 juin 2011
10 juin 2011 à 16:18
JE TE REMERCIE DE TON AIDE

BONNE CONTINUATION
0