Macro Excel pour copier une cell par colonne

Bonjour,

Je souhaite compléter une macro que je suis entrain de réaliser mais je coince à un endroit depuis kelke jours. bref g besoin d'aide !
______A___________B_______________C____________D____________E
1_____%__________Taille___________Grande________Petite________Moyenne
2____10%________Grande____________10%
3____20%_________Petite________________________20%

Voila mon problème : Je souhaite insérer dans ma macro un code qui me permette de reporter le chiffre de la colonne A soit de ds la colonne C, D ou E en fonction de ce qu'il y a d'inscrit dans la colonne B.
Bref, Si la taille de l'entreprise est grande (colonne B) alors on reporte 10 % ds la colonne C.
J' arrive pas à exprimer cela en langage VBA. C'est peut être simple mais moi j'y arrives pas.

Merci d'avance pour votre aide !!
Configuration: Windows Vista
Internet Explorer 7.0

3 réponses

  1. Contributeur
    bonjour

    Tu as plusieurs solutions pour y arriver et je te propose une formule simple pour débuter:

    Dim decal As Integer
    Dim lig As Long
    For lig = 2 To 5
        Select Case Cells(lig, 2)
            Case "Grande"
                decal = 2
            Case "Petite"
                decal = 3
            Case "Moyenne"
                decal = 4
        End Select
        Cells(lig, 1).Offset(0, decal).Value = Cells(lig, 1).Value
    Next lig

    En fonction de la colonne B tu recopies la colonne A dans C, D ou E
    0
    1. Merci pour ta réponse,

      Je vais essayer et je reviens te dire si cela marche.

      merci
      0
      1. Bonjour,

        J 'envoie le code que j'ai déja effectué (c'est peut etre pas parfait mais ca marche).

        Private Sub calculer_click()
        '
        ' BDD Macro

        Dim TabTemp As Variant
        Dim L As Long, LigDebFich As Long
        Application.ScreenUpdating = False
        'Charge les données dans un tableau variant temporaire
        With Sheets("BDD")
        L = .Range("A65536").End(xlUp).Row
        TabTemp = .Range(.Cells(10, 1), .Cells(L, 7)).Value
        End With

        With Sheets("PORT_MODELE")
        'Effacer l' ancien portefeuille modèle
        .Range("A10:D65000").Delete shift:=xlUp
        .Range("G10:G65000").Delete shift:=xlUp
        .Range("K10:K65000").Delete shift:=xlUp
        'Pour chaque ligne de données
        For L = 1 To UBound(TabTemp, 1)
        LigDebFich = 10 + 1 * L

        'Insertion des données...
        'Le pourcentage détenu en portefeuille
        .Cells(LigDebFich + 1, 3).Value = TabTemp(L, 7)
        'Le code ISIN
        .Cells(LigDebFich + 1, 1).Value = TabTemp(L, 1)
        'Le libellé
        .Cells(LigDebFich + 1, 2).Value = TabTemp(L, 2)
        'La Taille de capitalisation
        .Cells(LigDebFich + 1, 4).Value = TabTemp(L, 5)
        'Le Style de gestion
        .Cells(LigDebFich + 1, 8).Value = TabTemp(L, 6)
        'La zone géographique
        .Cells(LigDebFich + 1, 12).Value = TabTemp(L, 4)

        Next L
        Application.CutCopyMode = False
        End With
        Application.ScreenUpdating = True

        End Sub

        Donc je souhaite q' en appuyant sur le bouton, l'opération décrite plus haut(mon 1er message) se réalise.
        Les données sont dans la feuille "PORT_MODELE".

        Merci d'avance
        0