Everlast03
XLDnaute Occasionnel
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 😀
Pièce Jointe :
Cijoint.fr - Service gratuit de dépôt de fichiers
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 😀
Code:
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 :
Cijoint.fr - Service gratuit de dépôt de fichiers
Dernière édition: