XL 2010 rendre macro plus rapide

yahya belbachir

XLDnaute Occasionnel
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 Occasionnel
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
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas