Erreur d'exécution 13 Incompatibilité de type
mandrake007
Messages postés
14
Date d'inscription
Statut
Membre
Dernière intervention
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
j'ai une error 'Erreur d'exécution 13 Incompatibilité de type' pour cest lien
val_x = Sheets(onglet).Range(col_val & j - 1)
EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
j'ai une error 'Erreur d'exécution 13 Incompatibilité de type' pour cest lien
A voir également:
- Erreur d'exécution 13 Incompatibilité de type
- Fifa 13 - Télécharger - Jeux vidéo
- Erreur 3005 france tv - Forum TV & Vidéo
- Test redmi note 13 5g - Accueil - Téléphones
- Iptv erreur de lecture - Forum TV & Vidéo
- Type de ram - Guide
4 réponses
bonjour Jordane,
cest ca la code
cest ca la code
Sub abcdDeltaColor(onglet As String, column_date As String, abcdDelta As Double, col_val As String, column_date_manq As Integer, col_val_manq As Integer) 'Paramètres : (onglet, colonne des dates à comparer, abcdDelta de comparaison, colonne des valeurs à utiliser, colonne des dates à remplir) 'Initialisation variables Dim maxValue As Integer 'nombre de points maximum manquants maxValue = 24 * 60 * delais 'delais = 1 min : maxValue = 1 jour Dim nb_points As Integer 'nombre de points ajoutés au total nb_points = 0 Dim nb_points_temp As Integer 'nombre de points ajoutés d'affilé nb_points_temp = 1 Dim val_up As Double 'valeur réelle précédente Dim val_down As Double 'valeur réelle suivante Dim i As Integer 'compteur pour la boucle for 'Traitement des points manquants Sheets(onglet).Cells(1, column_date_manq).Value = "Dates manquantes" Sheets(onglet).Cells(1, col_val_manq).Value = "Valeurs manquantes" Sheets(onglet).Cells(1, column_date_manq).EntireColumn.AutoFit Sheets(onglet).Cells(1, col_val_manq).EntireColumn.AutoFit j = 3 While j <= Sheets(onglet).Range(column_date & "65536").End(xlUp).Row If Sheets(onglet).Range(column_date & j - 1).NumberFormat = "dd/mm/yyyy hh:mm:ss" Then calc = CDbl(Sheets(onglet).Range(column_date & j) - Sheets(onglet).Range(column_date & j - 1)) 'Calcul du délais entre deux mesures If (calc > abcdDelta * nb_points_temp) And (calc < maxValue) Then 'délais supérieur au abcdDelta (prenant en compte les valeurs artificielles) et inférieur au seuil max Sheets(onglet).Cells(2 + nb_points, column_date_manq).Value = Sheets(onglet).Range(column_date & j - 1) + abcdDelta * nb_points_temp 'création nouvelle date nb_points = nb_points + 1 'la taille du tableau des points ajoutés a augmenté nb_points_temp = nb_points_temp + 1 'le nombre de points ajoutés à la suite à augmenté Else If nb_points_temp <> 1 Then val_up = Sheets(onglet).Range(col_val & j - 1) 'valeur de la ligne précédente val_down = Sheets(onglet).Range(col_val & j) 'valeur de la ligne actuelle For i = 1 To nb_points_temp - 1 Sheets(onglet).Cells(2 + nb_points - nb_points_temp + i, col_val_manq).Value = _ val_up + (val_down - val_up) / nb_points_temp * i 'nouvelle valeur : trace une droite entre les valeurs précédentes et suivantes Next i End If nb_points_temp = 1 'aucun point ne vient d'être ajouté j = j + 1 End If End If Wend 'Largeur des nouvelles colonnes If nb_points <> 0 Then Sheets(onglet).Cells(1, column_date_manq).Interior.Color = RGB(255, 0, 0) Sheets(onglet).Cells(1, col_val_manq).Interior.Color = RGB(255, 0, 0) Sheets(onglet).Tab.Color = RGB(255, 0, 0) End If End Sub
EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici :ICI Merci d'y penser dans tes prochains messages. |
Je ne t'ai pas demandé le code (même si ça peut servir) mais simplement que tu me dises quelles sont les valeurs stockées dans tes variables....
Pour cela..... lance ton programme puis lorsque le programme s’arrêtera sur la ligne concernée.. passe la souris dessus pour savoir ce que contiennent tes variables.
(tu peux éventuellement placer un point d'arrêt dans ton code à cette ligne )
Pour cela..... lance ton programme puis lorsque le programme s’arrêtera sur la ligne concernée.. passe la souris dessus pour savoir ce que contiennent tes variables.
(tu peux éventuellement placer un point d'arrêt dans ton code à cette ligne )
Je ne vois pas dans le code que tu nous as posté la ligne concernée dans ton premier message...
Quoi qu'il en soit, comment à tu initialisé val_x ?
Si c'est une RANGE il faut alors dans ton code ajouter un SET
Si c'est pour y stocker le contenu (la valeur) dans ce cas, ajoute un .value
Quoi qu'il en soit, comment à tu initialisé val_x ?
Si c'est une RANGE il faut alors dans ton code ajouter un SET
Dim val_x as RANGE Set val_x = Sheets(onglet).Range(col_val & j - 1)
Si c'est pour y stocker le contenu (la valeur) dans ce cas, ajoute un .value
Dim val_x as variant ' ou integer ou string en fonction de son contenu... val_x = Sheets(onglet).Range(col_val & j - 1) .value
bonjour, il plant a dernier lien
//Code a toi
Dim sh as Worksheet
Dim rng as Range
Dim strRng as string
strRng = col_val & j-1 '//strRng= ''D60"
set sh = Sheets(onglet)
set rng = sh.Range(strRng) '//rng = 0.0078125
val_up = rng.value '//val_up=0 //Plante
//Code a toi
Dim sh as Worksheet
Dim rng as Range
Dim strRng as string
strRng = col_val & j-1 '//strRng= ''D60"
set sh = Sheets(onglet)
set rng = sh.Range(strRng) '//rng = 0.0078125
val_up = rng.value '//val_up=0 //Plante
Tu a lu mon précédent message ??
Cela vient, je pense, de ton séparateur décimal.....
0.0078125 n'est pas la même chose que 0,0078125 ( un point... ou une virgule).
Quel est ton séparateur par défaut dans ton excel ??
Essaye de le changer en définissant le ";" comme séparateur
https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.decimalseparator?redirectedfrom=MSDN
NB : Lorsque tu postes du code sur le forum ... utilise LES BALISES DE CODE !!!
Cela vient, je pense, de ton séparateur décimal.....
0.0078125 n'est pas la même chose que 0,0078125 ( un point... ou une virgule).
Quel est ton séparateur par défaut dans ton excel ??
Essaye de le changer en définissant le ";" comme séparateur
https://docs.microsoft.com/fr-fr/office/vba/api/excel.application.decimalseparator?redirectedfrom=MSDN
'On change le séparateur Application.DecimalSeparator = "." Dim sh as Worksheet Dim rng as Range Dim strRng as string strRng = col_val & j-1 '//strRng= ''D60" set sh = Sheets(onglet) set rng = sh.Range(strRng) '//rng = 0.0078125 val_up = rng.value '//val_up=0 //Plante
NB : Lorsque tu postes du code sur le forum ... utilise LES BALISES DE CODE !!!