Espace et adaptation au nombre de capteurs

Everlast03 Messages postés 29 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 8 décembre 2014 - 12 mai 2010 à 06:38
Everlast03 Messages postés 29 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 8 décembre 2014 - 12 mai 2010 à 09:37
Bonjour,

J'ai créé une macro pour le remplissage automatique de données dans une feuille prête à être imprimée, cependant j'ai quelques petits soucis.
Je vous joint la feuille pour une meilleure compréhension.
Exécutez la macro et voyez par vous même...

Je voudrais que lorsque l'on passe d'une marche à une autre, il y est un saut de ligne. (De 1 à 2 dans la colonne B dans 'Rotor')

De plus je voudrais que lorsque mon nombre de "marqueurs" change, c'est à dire que je n'ai plus 8 vitesses différentes comme ici, ça s'adapte.

Exemple :
1 781,27
1 1036,40
1 1368,40
1 1620,10
1 1861,60
1 2259,40
1 2768,20
1 3293,20

2 650,10
2 1248,20
2 1540,10
2 2319,40
2 3417,20

Pouvez-vous me dire comment faire j'avoue que je suis un peu perdu...

Merci d'avance ...

Ps : Voici ma macro pour les impatients :D

Dim NbMarqueurs As Integer, NbCapteurs As Integer
Dim IMark As Integer, ICapt As Integer

Sub Macro1()
'
' Macro1 Macro
'
'ICellD As Integer, CcellD As Integer                          ' Cellule de destination (l=  ligne, C=colonne)
'ICellS As Integer, CcellS As Integer                            ' Cellule source(l=ligne, C=colonne)
Dim temp As String
'
' Nombre de marqueurs
'Open "c:\temp\trace.txt" For Output As #1
    Sheets("Données Brutes").Select
    Range("C152").Select
    ActiveCell.FormulaR1C1 = "=MAX(R[-145]C:R[-3]C)/2"
    NbMarqueurs = ActiveCell.Value
' Nombre de capteurs
    Range("C153").Select
    ActiveCell.FormulaR1C1 = "=COUNT(R[-146]C:R[-4]C)/R[-1]C/2"
    NbCapteurs = ActiveCell.Value


' Nombre de marche
    NbMarche = WorksheetFunction.Max(Range("B:B"))



For marche = 0 To NbMarche - 1


' Lecture des données
    Sheets("Rotor").Select
' Vitesses
    ' Positionnement sur la première ligne
    ICellD 11 + NbMarqueurs * marche: ICellS (155 * (marche) + 7)
    CcellD 4: CcellS 6
   
             For ICapt = 1 To NbCapteurs
           
           'récupération depuis la source de données
            vitesse = Sheets("Données Brutes").CellS(ICellS, CcellS).Value
            ampX = Sheets("Données Brutes").CellS(ICellS, CcellS + 2).Value
            phX = Sheets("Données Brutes").CellS((NbCapteurs + 1) * NbMarqueurs + ICellS, CcellS + 2).Value
            ampY = Sheets("Données Brutes").CellS(ICellS + 1, CcellS + 2).Value
            phY = Sheets("Données Brutes").CellS((NbCapteurs + 1) * NbMarqueurs + ICellS + 1, CcellS + 2).Value
            
            'affectation des valeurs sur la feuille rotor
            Sheets("Rotor").CellS(ICellD, CcellD - 2).Value = marche + 1
            Sheets("Rotor").CellS(ICellD, CcellD).Value = vitesse
            Sheets("Rotor").CellS(ICellD, CcellD + 2).Value = ampX
            Sheets("Rotor").CellS(ICellD, CcellD + 3).Value = phX
            Sheets("Rotor").CellS(ICellD, CcellD + 4).Value = ampY
            Sheets("Rotor").CellS(ICellD, CcellD + 5).Value = phY
            
            ICellS = ICellS + NbMarqueurs + 1
            ICellD =  ICellD + 1
            
            
        Next ICapt
        
        Next marche
Close #1
  
End Sub


Pièce Jointe :
=cj201005/cijik7roZF.xls Cijoint.fr - Service gratuit de dépôt de fichiers

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
12 mai 2010 à 09:35
Salut
Perso, je n'ai pas le temps de charger une appli et de découvrir quel pourrait-être ton problème.
C'est à toi de savoir expliquer ton problème, ce qui sous-entend que tu as fait une première analyse du problème.

"Je voudrais que lorsque l'on passe d'une marche à une autre"
Donc, ça va se passer après le Next marche

"il y est un saut de ligne. (De 1 à 2 dans la colonne B dans 'Rotor')"
Je ne comprends pas ce que tu veux faire

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Everlast03 Messages postés 29 Date d'inscription mardi 27 avril 2010 Statut Membre Dernière intervention 8 décembre 2014
12 mai 2010 à 09:37
En fait il faut que lorsque l'on passe d'une marche à une autre il y est une ligne vide qui les sépare.
0
Rejoignez-nous