Macro Excel pour copier une cell par colonne

Fermé
nikho123 Messages postés 7 Date d'inscription mercredi 30 juillet 2008 Statut Membre Dernière intervention 3 février 2009 - 30 juil. 2008 à 21:29
 nikho123 - 31 juil. 2008 à 10:09
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 !!
A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 711
30 juil. 2008 à 22:47
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
Merci pour ta réponse,

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

merci
0
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