XL 2013 Erreur Code VBA

jeanba

XLDnaute Occasionnel
Bonjour,

Mon code ci-dessous renvoie une erreur de genre
upload_2018-10-6_14-45-46.png


Quelqu'un peut à vue de nez me dire ce qui va pas... ?

Merci par avance
Jeanba


Code:
Public WithEvents txtB As MSForms.TextBox
Private Sub txtB_Change()
Application.ScreenUpdating = False
Dim Total As Double
'Initialise la variable à 0
Total = 0

'Boucle de 1 a 13 pour 13 TextBox
   For i = 100 To 112
        'Si un des TextBox est différent de rien alors
       If Me.Controls("TextBox" & i) <> "" Then
            Me.Controls("TextBox" & i + 13).Value = _
            Format(Me.Controls("TextBox" & i).Value * _
            Me.Controls("TextBox" & i).Tag, "#,##")
            'Ben le total est le total de tous les TextBox
           Total = Total + CDbl(Me.Controls("TextBox" & i + 13))
        'Fin de la condition
            Else
            Me.Controls("TextBox" & i + 13).Value = Null
        End If
    'Fin de la boucle
   Next i
        'Le TextBox "txtTotal" recoit le total
   Me.TboTotal.Value = Format(Total, "#,##")
Application.DisplayAlerts = False
Application.ScreenUpdating = True
End Sub
 

Dranreb

XLDnaute Barbatruc
D'une manière générale évitez de travailler au coup par coup directement avec les cellules.
Passez par un tableau dynamique intermédiaire en mémoire. La propriété Value d'un Range représentant plusieurs cellules est justement un tel tableau.
 

Dranreb

XLDnaute Barbatruc
Oui, à condition de ne pas s'en servir quand même pour une seule cellule à chaque fois !
Cells et Range sont des méthodes lourdes et lentes dont la durée d'exécution est pratiquement indépendante du nombre de valeurs de cellules accédées. Vous pouvez partir du principe que lire ou écrire 1000 fois une seule cellule à chaque fois dure 1000 fois plus longtemps que charger ou décharger une seule fois 1000 valeurs de cellules dans ou d'un tableau.
 

jeanba

XLDnaute Occasionnel
OK, je comprends.
Alors, pouvez-vous agir concrètement sur le projet ci-joint ci-dessus en dernier, de telle sorte que:

1) qu'à l'ouverture de l'usf, ce soit la 1ere cellule vide de la 2e colonne qui soit activée
2) l'exécution de la macro soit plus rapide
3) tous les boutons de cde suivent..

Merci infiniment Dranreb et merci à tout le forum!
Que de choses j'ai apprises sur ce forum
Encore merci pour l'idée, le partage, la disponibilité!

Jeanba
 

Dranreb

XLDnaute Barbatruc
Pourquoi y a-t-il deux UserForm alors qu'il n'y a apparemment qu'un tableau à mettre à jour ?
Cherchez voir ComboBoxLiées dans ce site. J'ai écrit énormément d'applications de mise à jour de tableaux
Vous auriez d'ailleurs intérêt à lui faire subir une mise sous forme de tableau pour qu'on ait un ListObject qui le représente.
 

Discussions similaires

Statistiques des forums

Discussions
312 352
Messages
2 087 519
Membres
103 573
dernier inscrit
jg1984