Erreur incompatibilité de type comparaison cellules
Romhin
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
ThauTheme Messages postés 1442 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Erreur incompatibilité de type comparaison cellules
- Formule excel pour additionner plusieurs cellules - Guide
- Verrouiller cellules excel - Guide
- Iptv erreur de lecture - Forum TV & Vidéo
- Type de ram - Guide
- Concatener deux cellules excel - Guide
1 réponse
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...
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...