Erreur d'incompatibilité 13 - Code VBA

Résolu/Fermé
2015-1158 Messages postés 34 Date d'inscription mardi 27 mars 2018 Statut Membre Dernière intervention 14 juin 2018 - Modifié le 27 mars 2018 à 15:29
2015-1158 Messages postés 34 Date d'inscription mardi 27 mars 2018 Statut Membre Dernière intervention 14 juin 2018 - 28 mars 2018 à 16:58
Bonjour,

Un problème 13 est apparu sur mon code impossible de trouver l'erreur depuis 2jours. Pourtant il avait marché je comprends pas ce qui a changé. J'ai essayé de respecter au mieux les principes de l'informatique, je n'ai pas mélanger de chaine de caractère avec des valeurs algébriques, j'ai défini chaque variable, j'ai vérifié que chaque cellule utilisée avec Range.Value contenait un nombre mais rien à faire !

Je joins en PJ l'Excel, si vous pourriez jeter un coup d'oeil pour m'aider,

https://www.transfernow.net/?utm_source=partagefichierscom&utm_medium=download

En vous remerciant,

Thomas

Un extrait du code en question:

UserForm 3 :
Private Sub CommandButton5_Click()
Unload UserForm3
If OptionButton1 = True Then
UserForm4.Show
End If
If OptionButton2 = True Then
UserForm5.Show
End If
End Sub
Private Sub CommandButtonUF32_Click()
Unload Me
Range("C17").ClearContents
End Sub

UserForm2:
Sub TextBox7_Change()
If Not IsNumeric(TextBox7) And Not TextBox7.Text = "" Then
MsgBox ("pas numeric")
TextBox7.Text = Mid(TextBox7.Text, 1, Len(TextBox7.Text) - 1)
End If
CalculMoy2
End Sub
Sub TextBox8_Change()
If Not IsNumeric(TextBox8) And Not TextBox8.Text = "" Then
MsgBox ("Not a numeric value")
TextBox8.Text = Mid(TextBox8.Text, 1, Len(TextBox8.Text) - 1)
End If
CalculMoy2
End Sub
Sub CalculMoy2()
Me.TextBox9.Value = (Val(Replace(Me.TextBox7, ",", ".")) + Val(Replace(Me.TextBox8, ",", "."))) / 2
End Sub
Private Sub TextBox9_Change()
Range("C11") = TextBox9.Value
End Sub
Private Sub CommandButton3_Click()
Unload UserForm2
Range("C13").Value = Range("C11").Value / (24 * Range("M2").Value)
rslt1 = Range("C10").Value - Range("C13").Value * Range("M2").Value * 24 * (Range("C8").Value / 100)
rslt2 = Range("M2").Value * (24 - 24 * (Range("C8").Value / 100))
Range("C12").Value = (rslt1) / (rslt2)
End Sub
Private Sub CommandButton4_Click()
Unload Me
Range("C11").ClearContents
End Sub
A voir également:

2 réponses

f894009 Messages postés 17268 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 mars 2025 1 713
27 mars 2018 à 16:44
Bonjour,

le fichier SANS MOT DE PASSE
1
2015-1158 Messages postés 34 Date d'inscription mardi 27 mars 2018 Statut Membre Dernière intervention 14 juin 2018
27 mars 2018 à 16:48
Bonjour,

Voici le fichier sans mot de passe, je viens de réparer l'erreur, c'était au niveau du complétement entre les TextBox et le lien entre certaines cellule, j'écrivais: TextBox1.Text=Range("C10").Value, il suffisait de supprimer le Value, tout s'est emboiter. Je le poste tout de même si certains ont des remarques ou des améliorations à apporter, je suis débutant en VBA. En vous remerciant,

https://www.transfernow.net/?utm_source=partagefichierscom&utm_medium=download
0
2015-1158 Messages postés 34 Date d'inscription mardi 27 mars 2018 Statut Membre Dernière intervention 14 juin 2018
27 mars 2018 à 16:53
Il reste encore une erreur d'incompatibilité dedans:
Sur la cellule C11, le premier userform rentrer: 127; 123;156;147;119
le second userform: 56;87
Et là une erreur apparait. Je regarde à nouveau les lignes de codes et je ne trouve pas l'erreur.
0
f894009 Messages postés 17268 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 mars 2025 1 713
27 mars 2018 à 17:12
Re,

Et là une erreur apparait
Laquelle car chez moi pas d'erreur VBA
0
2015-1158 Messages postés 34 Date d'inscription mardi 27 mars 2018 Statut Membre Dernière intervention 14 juin 2018
27 mars 2018 à 17:17
Sur la cellule C10 ou C11, un UF1 (calcul de la moyenne N°1) apparait, essayes une première fois avec une liste de nombre tel que la moyenne N°1 soit inférieur à celle du 2nd UF2 (calcul de la moyenne N°2 sur weekend). Bref essayes deux possibilités, un coup lorsque la moy1 est supérieur à la moy2 et un autre coup l'inverse. Logiquement l'erreur 13 devrait apparaitre.

Merci
0
2015-1158 Messages postés 34 Date d'inscription mardi 27 mars 2018 Statut Membre Dernière intervention 14 juin 2018
27 mars 2018 à 17:20
Lorsque Moyenne semaine>MOyenne weekend ca bug chez moi
0
2015-1158 Messages postés 34 Date d'inscription mardi 27 mars 2018 Statut Membre Dernière intervention 14 juin 2018
27 mars 2018 à 17:33
Bon peut-être que ca bug plus en fait, je suis désolé.
Cependant j'ai tout de même une question technique. Comme tu peux le voir j'ai réaliser des macros sur la colonne C, j'aimerai pouvoir appliquer ces mêmes macros sur les colonnes qui suivent.

A la base pour enclencher mes macros j'ai mis ceci dans la feuille principale:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$C$10" Then UserForm1.Show
If Target.Address = "$C$11" Then UserForm1.Show
If Target.Address = "$C$17" Then UserForm3.Show
End Sub

J'ai essayé de le modifier pour créer une boucle afin de balayer une ligne:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim i As Integer
i=1
While i=<3
If Target.Address = Cells(10,i) Then UserForm1.Show
If Target.Address = Cells(11,i) Then UserForm1.Show
If Target.Address = Cells(17,i) Then UserForm3.Show
i=i+1
Wend
End Sub

Mais evidemment ca ne marche pas. Il faudra ensuite que je code l'intérieur des macros avec des boucles car en fonction de la cellule choisir on se place sur une lettre de colonne pour amorcer les macros. A reflechir
0