Erreur incompatibilité de type comparaison cellules

Fermé
Romhin Messages postés 1 Date d'inscription lundi 24 juillet 2017 Statut Membre Dernière intervention 24 juillet 2017 - 24 juil. 2017 à 10:04
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 24 juil. 2017 à 17:18
Bonjour

J'ai une incompatibilité de type en voulant comparer la dernière cellule remplie d'une colonne avec la valeur d'une cellule située sur une autre feuille.

Voila mon code :

Sur un onglet Feuille_entree, j'ai un bouton auquel j'ai affecté un userform avec 3 boutons options et 5 textbox en tout. Je fonctionne sous forme de "noeuds". En appuyant sur valider, elles s'affichent dans un tableau située sur le même onglet (colonnes M, N, O et P). Ce tableau se remplit au fur et à mesure que je saisis des valeurs.

Textbox 1 : temps départ (colonne M)
Textbox 2 : volume départ (colonne N)
Textbox 3 : temps arrivée (colonne O)
Textbox 4 : volume arrivée (colonne P)

A part la ligne 0, je saisis des valeurs dans les textbox 3 et 4 car :
temps et volume noeud d'arrivée à la ligne k = temps et volume noeud de départ à la ligne k + 1

Dim Dlig1, Dlig2, Dlig3, Dlig4 As Long

With Sheets("Feuille_entree")
Dlig1 = .Range("M" & Rows.Count).End(xlUp).Row
Dlig2 = .Range("N" & Rows.Count).End(xlUp).Row
Dlig3 = .Range("O" & Rows.Count).End(xlUp).Row
Dlig4 = .Range("P" & Rows.Count).End(xlUp).Row

.Range("M" & Dlig1 + 1).Value = TextBox1.Value
.Range("N" & Dlig2 + 1).Value = TextBox2.Value
.Range("O" & Dlig3 + 1).Value = TextBox3.Value
.Range("P" & Dlig4 + 1).Value = TextBox4.Value

End With

Pas de problème cela fonctionne.

Par contre, j'ai un autre onglet Feuil1 où j'ai un tableau qui se remplit automatiquement avec pas mal de formules. Elles fonctionnent, pas de soucis.

En fait, j'effectue une boucle à partir de la dernière ligne remplie et les valeurs saisies dans la textbox3 et la textbox 4 sont les conditions d'arrêt de ma boucle. Sur Feuil1, le temps est sur la colonne A et le volume sur la colonne D.

With Sheets("Feuil1")
Dlig = .Range("A" & Rows.Count).End(xlUp).Row

End With

Dim i As Long, v As Long

v = 1000

For i = (Dlig + 1) To v

volL niveau figé
If OptionButton1 = True Then
Sheets("Feuil1").Range("D" & i).Value = Sheets("Feuil1").Range("D" & (i - 1)).Value
End If

'volL baisse de niveau
If OptionButton2 = True Then
Sheets("Feuil1").Range("D" & i).FormulaLocal = "=SI(B" & i & "=0;D" & (i - 1) & "-AM3;D" & (i - 1) & ")"
End If

'volL baisse de niveau
If OptionButton3 = True Then
Sheets("Feuil1").Range("D" & i).FormulaLocal = "=SI(B" & i & "=0;D" & (i - 1) & "+AM3;D" & (i - 1) & ")"
End If

.... autres formules qui marchent

If (Sheets("Feuil1").Range("D" & i).Value = CDbl(TextBox4.Value) And OptionButton1 = True)
Or (CDbl(TextBox4.Value) = Sheets("Feuil1").Range("D" & i).Value And (OptionButton2 = True Or OptionButton3 = True)) Then
Exit For
End If

Next i

Merci d'avance de l'aide que vous pourrez m'apporter
A voir également:

1 réponse

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
24 juil. 2017 à 17:18
Bonjour Romhin, bonjour le forum,

Malgré tes grandes explications et sans le fichier qui va bien, difficile de t'aider de manière efficace.
Quoiqu'il en soit quand je veux comparer des dates ou des heures entre un contrôle (TextBox, ComboBox, etc.) et une cellule, je transforme les deux en DateSerial ou TimeSerial pour éviter toute confusion entre les formats ou de problème d'inversion jour/mois... Puis, seulement après, je les compare...
0