Code VBA pour inserer 4 lignes sous une condi

lazvb Messages postés 4 Statut Membre -  
lazvb Messages postés 4 Statut Membre -
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.

4 réponses

  1. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  2. lazvb Messages postés 4 Statut Membre
     
    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
  3. melanie1324 Messages postés 1561 Statut Membre 156
     
    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
  4. lazvb Messages postés 4 Statut Membre
     
    JE TE REMERCIE DE TON AIDE

    BONNE CONTINUATION
    0