Excel transformation pour pb convertisseur A/D

roger44

XLDnaute Junior
Bonjour, j'espère qu'il a quelqu'un parmi vous qui accepterait de traiter mon petit problème, sûrement facile pour vous mais pas pour moi.
Le fichier joint explique tout.

J'ai un convertisseur analogique/digital à 8 entrées séquentielles, qui envoit les résultats sur un bus USB, séquentiel évidemment, vers un fichier Excel.
Mais je peux connecter toutes les 8 entrées sur un seul fil pour améliorer la rapidité d'échantillonage d'une seule tension qui m'intéresse.

Le problème est que son logiciel déclare que toutes les tensions ont été prélevées au même moment, ce qui donne la table AVANT et des courbes inexploitables.

J"ai besoin d'aide pour automatiser la transformation en table APRES, qui donne une courbe parfaitement exploitable.
Merci
 

Pièces jointes

  • nonames forum.xls
    22.5 KB · Affichages: 96

Tibo

XLDnaute Barbatruc
Re : Excel transformation pour pb convertisseur A/D

Bonsoir,

Une première approche, sur la base de ce que j'ai compris :

En A11, cette formule :

Code:
=SI(MOD(LIGNE()-11;3)=0;INDEX($A$4:$A$8;ENT((LIGNE()-11)/3)+1);A10+(INDEX(
$A$4:$A$8;ENT((LIGNE()-11)/3)+2)-INDEX($A$4:$A$8;ENT((LIGNE()-11)/3)+1))/3)

en B11, cette formule :

Code:
=INDEX($B$4:$D$8;ENT((LIGNE()-11)/3)+1;MOD(LIGNE()-11;3)+1)

à recopier vers le bas

Je te laisse tester

@+
 

PMO2

XLDnaute Accro
Re : Excel transformation pour pb convertisseur A/D

Bonjour,

Une piste avec le code suivant à copier dans un module standard

Code:
Sub TableApres()
Dim R As Range
Dim var
Dim i&
Dim j&
Dim k&
Dim Ordo&
Dim pos&
Dim T()
Dim x#
Dim S As Worksheet
Dim C As Chart
Dim A$
Set R = Selection
If R.Columns.Count <> 4 Then
  MsgBox "La plage sélectionnée n'a pas 4 colonnes."
  Exit Sub
End If
var = R
For i& = 1 To UBound(var, 1)
  For j& = 2 To UBound(var, 2)
    If var(i&, j&) <> "" Then Ordo& = Ordo& + 1
  Next j&
Next i&
ReDim T(1 To Ordo&, 1 To 2)
'--- Calcul des données ---
For i& = 1 To UBound(var, 1)
  pos& = i& + 2 * (i& - 1)
  For j& = 1 To UBound(var, 2)
    If j& = 1 Then
      T(pos&, 1) = var(i&, j&)
    Else
      If pos& + k& <= Ordo& Then
        T(pos& + k&, 2) = var(i&, j&)
        k& = k& + 1
      End If
    End If
  Next j&
  k& = 0
Next i&
j& = 2
For i& = 1 To Ordo& - 1 Step 3
  x# = T(i& + 3, 1) - T(i&, 1)
  T(j&, 1) = T(i&, 1) + (x# * 1 / 3)
  T(j& + 1, 1) = T(i&, 1) + (x# * 2 / 3)
  j& = j& + 3
Next i
'--- Inscription ---
Set S = Sheets.Add
Set R = S.Range(S.Cells(1, 1), S.Cells(UBound(T, 1), 2))
R = T
R.NumberFormat = "0.00"
A$ = R.Parent.Name
Set C = Charts.Add
C.ChartType = xlXYScatterSmooth
Set R = R.Resize(R.Rows.Count, R.Columns.Count - 1)
C.SeriesCollection(1).XValues = "=" & A$ & "!" & _
    R.Address(False, False, xlR1C1) & ""
Set R = R.Offset(0, 1)
C.SeriesCollection(1).Values = "=" & A$ & "!" & _
    R.Address(False, False, xlR1C1) & ""
C.Location Where:=xlLocationAsObject, Name:=A$
With ActiveChart
  .Axes(xlValue).MajorUnit = 0.5
  .Deselect
End With
End Sub

Je me suis basé sur votre fichier exemple joint.
Sélectionnez la plage des données AVANT ( A4 : D8 dans votre exemple)
et lancez la macro "TableApres".
Une nouvelle feuille est créée dans laquelle s'inscrit les données APRES
et un graphique s'y afférant.

Cordialement.

PMO
Patrick Morange
 

roger44

XLDnaute Junior
Re : Excel transformation pour pb convertisseur A/D

Bonsoir

Je reviens sur mon petit problème qui est résolu maintenant d'une autre façon mais je sais que rien n'est plus facheux que de donner des conseils sur un forum sans jamais avoir de feedback.

Peu après le vendeur m'a conseillé la mode de fonctionnement 'burst' par laquelle on pouvait capturer une rafale de données à haute fréquence pendant quelques secondes seulement et sur un seul canal. Ceci m'a permis de monter à 2k échantillons/sec.

Mais on est toujours loin des 15kS/sec annoncés. J'ai essayé sur plusieurs ordi de puissance différente et différente versions de XP mais le plafond était toujours à 2kS/s. Donc j'ai ralé de nouveau auprès du fabricant.

Et hier il m'a envoyé une ANCIENNE version de son logiciel. Et bingo, j'arrive immédiatement à 13,5 kS/sec. Mmmmm, il y a de la stratégie commerciale la-dedans sachant qu'il y des modèles haut de gamme.

Merci
 

roger44

XLDnaute Junior
Re : Excel transformation pour pb convertisseur A/D

Et juste pour conclure :
Avec cette ancienne version du logiciel j'obtients une
vitesse de 20k échantillons/sec, le software refuse de demander une vitesse plus élevée.

Bon, tout ce qui a été écrit par un homme, un autre homme peut le modifier. C'est un nouveau challenge......
 

Statistiques des forums

Discussions
312 330
Messages
2 087 341
Membres
103 524
dernier inscrit
Smile1813