Bonjour,
Voila je vous explique mon problème.
L'objectif de mon programme est de récuperer des données provenant d'un source-mètre (Stockées dans la variable "mesure", qui est une chaine de caractères (chaine envoyée par l'appareil) comportant les coordonnées de chaque point (chaque valeur courant-tension est stockée sur 28 Octects (14 pour chaque parametre)).
Le petit programme que j'ai créé permet de découper cette chaine de caracteres, et d'écrire les valeurs de chaque parametre dans 2 colonnes distinctes (Colonne C les valeurs en tension et colonne D les valeurs en courant). Tout cela dans le but de comparer les valeurs fournies par mon source-mètre, avec d'autres valeurs de références et ainsi gérer un graphique comparant la courbe de référence et la courbe de points récupérée.
Mon soucis se situe au niveau du temps de découpage de la chaine de caractères. Pour découper cette chaine comportant 101 points (et donc 202 valeurs), et écrire chaque valeur dans les colonnes correspondantes
mon programme met environ 6sec (sachant que je dois comparer environ 128 courbes.. cela prends vraiment trop de temps)
Ma question est donc: Ya t il un moyen d'optimiser mon découpage, ou mon écriture dans mon tableur, afin de gagner du temps ? Ou alors, existe t il un moyen de comparer ma chaine de carractères et mes données stockées dans les colonnes A et B de mon tableur, sans avoir à découper et écrire chaque valeur de ma chaine dans les colonnes C et D de mon tableur ?
Voici la partie du programme qui réalise le découpage, et l'écriture:
'Set the volts and current values in the tables
For i = 1 To Len(mesure) Step 28
If ((Mid(mesure, i, 1) = "-") Or (Mid(mesure, i, 1) = "+")) Then
VOLT(j) = Mid(mesure, i, 13)
CURR(j) = Mid(mesure, (i + 14), 13)
Range("Sheet1!C2").Select
ActiveCell.Offset(j + 1, 0).value = VOLT(j) 'Mid(mesure, i, 13)
ActiveCell.Offset(j + 1, 1).value = CURR(j) ' Mid(mesure, i + 14, 13)
j = j + 1
End If
Next i
Voila je vous explique mon problème.
L'objectif de mon programme est de récuperer des données provenant d'un source-mètre (Stockées dans la variable "mesure", qui est une chaine de caractères (chaine envoyée par l'appareil) comportant les coordonnées de chaque point (chaque valeur courant-tension est stockée sur 28 Octects (14 pour chaque parametre)).
Le petit programme que j'ai créé permet de découper cette chaine de caracteres, et d'écrire les valeurs de chaque parametre dans 2 colonnes distinctes (Colonne C les valeurs en tension et colonne D les valeurs en courant). Tout cela dans le but de comparer les valeurs fournies par mon source-mètre, avec d'autres valeurs de références et ainsi gérer un graphique comparant la courbe de référence et la courbe de points récupérée.
Mon soucis se situe au niveau du temps de découpage de la chaine de caractères. Pour découper cette chaine comportant 101 points (et donc 202 valeurs), et écrire chaque valeur dans les colonnes correspondantes
mon programme met environ 6sec (sachant que je dois comparer environ 128 courbes.. cela prends vraiment trop de temps)
Ma question est donc: Ya t il un moyen d'optimiser mon découpage, ou mon écriture dans mon tableur, afin de gagner du temps ? Ou alors, existe t il un moyen de comparer ma chaine de carractères et mes données stockées dans les colonnes A et B de mon tableur, sans avoir à découper et écrire chaque valeur de ma chaine dans les colonnes C et D de mon tableur ?
Voici la partie du programme qui réalise le découpage, et l'écriture:
'Set the volts and current values in the tables
For i = 1 To Len(mesure) Step 28
If ((Mid(mesure, i, 1) = "-") Or (Mid(mesure, i, 1) = "+")) Then
VOLT(j) = Mid(mesure, i, 13)
CURR(j) = Mid(mesure, (i + 14), 13)
Range("Sheet1!C2").Select
ActiveCell.Offset(j + 1, 0).value = VOLT(j) 'Mid(mesure, i, 13)
ActiveCell.Offset(j + 1, 1).value = CURR(j) ' Mid(mesure, i + 14, 13)
j = j + 1
End If
Next i