XL 2010 rendre macro plus rapide

yahya belbachir

XLDnaute Nouveau
Bonjour
j'ai un macro dans un userform qui est très long à repondre lorsque je click sur valider,y a t_il une possibilté de le rendre rapide?
mon macro pour le bouton de commande est:
Private Sub CommandButton1_Click()
Dim derligne As Integer
With Sheets("Histo")
derligne = .Range("A" & Rows.Count).End(xlUp).Row + 1
.Range("A" & derligne).Value = TFact.Value
.Range("B" & derligne).Value = Date
.Range("C" & derligne).Value = Tnom
.Range("D" & derligne).Value = Tprenom
.Range("E" & derligne).Value = Tadresse
.Range("F" & derligne).Value = "'" & Tice.Value
.Range("G" & derligne).Value = Ttel.Value
.Range("H" & derligne).Value = CBtype1.Value
.Range("I" & derligne).Value = CBtype2.Value
.Range("J" & derligne).Value = CBtype3.Value
.Range("K" & derligne).Value = LabelDate
.Range("L" & derligne).Value = LabelDate2
.Range("M" & derligne).Value = Val(Me.Controls("CBqte1"))
.Range("N" & derligne).Value = Val(Me.Controls("CBqte2"))
.Range("O" & derligne).Value = Val(Me.Controls("CBqte3"))
.Range("P" & derligne).Value = Val(Me.Controls("Tprix1"))
.Range("Q" & derligne).Value = Val(Me.Controls("Tprix2"))
.Range("R" & derligne).Value = Val(Me.Controls("Tprix3"))
.Range("S" & derligne).Value = LabelDate3
.Range("T" & derligne).Value = CBrepas1
.Range("U" & derligne).Value = Val(Me.Controls("CBqte4"))
.Range("V" & derligne).Value = Val(Me.Controls("Tunit1"))
.Range("W" & derligne).Value = LabelDate4
.Range("X" & derligne).Value = CBrepas2
.Range("Y" & derligne).Value = Val(Me.Controls("CBqte5"))
.Range("Z" & derligne).Value = Val(Me.Controls("Tunit2"))
.Range("AA" & derligne).Value = LabelDate5
.Range("AB" & derligne).Value = CBrepas3
.Range("AC" & derligne).Value = Val(Me.Controls("CBqte6"))
.Range("AD" & derligne).Value = Val(Me.Controls("Tunit3"))
.Range("AE" & derligne).Value = LabelDate6
.Range("AF" & derligne).Value = CBrepas4
.Range("AG" & derligne).Value = Val(Me.Controls("CBqte7"))
.Range("AH" & derligne).Value = Val(Me.Controls("Tunit4"))
.Range("AI" & derligne).Value = LabelDate7
.Range("AJ" & derligne).Value = CBrepas5
.Range("AK" & derligne).Value = Val(Me.Controls("CBqte8"))
.Range("AL" & derligne).Value = Val(Me.Controls("Tunit5"))
.Range("AM" & derligne).Value = LabelDate8
.Range("AN" & derligne).Value = CBrepas6
.Range("AO" & derligne).Value = Val(Me.Controls("CBqte9"))
.Range("AP" & derligne).Value = Val(Me.Controls("Tunit6"))
.Range("AQ" & derligne).Value = LabelDate9
.Range("AR" & derligne).Value = CBrepas7
.Range("AS" & derligne).Value = Val(Me.Controls("CBqte10"))
.Range("AT" & derligne).Value = Val(Me.Controls("Tunit7"))
.Range("AU" & derligne).Value = LabelDate10
.Range("AV" & derligne).Value = CBrepas8
.Range("AW" & derligne).Value = Val(Me.Controls("CBqte11"))
.Range("AX" & derligne).Value = Val(Me.Controls("Tunit8"))
.Range("AY" & derligne).Value = LabelDate11
.Range("AZ" & derligne).Value = CBrepas9
.Range("BA" & derligne).Value = Val(Me.Controls("CBqte12"))
.Range("BB" & derligne).Value = Val(Me.Controls("Tunit9"))
.Range("BC" & derligne).Value = LabelDate12
.Range("BD" & derligne).Value = CBrepas10
.Range("BE" & derligne).Value = Val(Me.Controls("CBqte13"))
.Range("BF" & derligne).Value = Val(Me.Controls("Tunit10"))
.Range("BG" & derligne).Value = LabelDate13
.Range("BH" & derligne).Value = CBrepas11
.Range("BI" & derligne).Value = Val(Me.Controls("CBqte14"))
.Range("BJ" & derligne).Value = Val(Me.Controls("Tunit11"))
end sub

merci pour votre réponse
 

eriiiic

XLDnaute Barbatruc
Bonjour,

exemple avec 3 valeurs :
VB:
Dim derligne As Integer, tabl(1 To 1, 1 To 3)
With Sheets("Histo")
    derligne = .Range("A" & Rows.Count).End(xlUp).Row + 1
    tabl(1, 1) = TFact.Value
    tabl(1, 2) = Date
    tabl(1, 3) = Tnom
    .Cells(derligne, 1).Resize(, UBound(tabl, 2)) = tabl
End With
eric
 

yahya belbachir

XLDnaute Nouveau
Bonjour,

exemple avec 3 valeurs :
VB:
Dim derligne As Integer, tabl(1 To 1, 1 To 3)
With Sheets("Histo")
    derligne = .Range("A" & Rows.Count).End(xlUp).Row + 1
    tabl(1, 1) = TFact.Value
    tabl(1, 2) = Date
    tabl(1, 3) = Tnom
    .Cells(derligne, 1).Resize(, UBound(tabl, 2)) = tabl
End With
eric
Bonjour Eric
merci pour votre réponse,j'ai essayé ce code mais il m'a donné seulement le nom et la date,puis_je rajouter quelque chose peut être?
 

eriiiic

XLDnaute Barbatruc
Boujour,

Oui, je n'allais pas te faire les 30 ou 40 lignes.
Complète sur le même modèle et dans
VB:
Dim derligne As Integer, tabl(1 To 1, 1 To 3)
tu adaptes le 3
eric
 

Discussions similaires


Haut Bas