Besoin d'aide pour une macro

rhcpaddict Messages postés 8 Statut Membre -  
Polux31 Messages postés 7219 Statut Membre -
Bonjour, je travaille sur un système d'acquisition de données qui m'enregitre un fichier (en .vlm) dont je choisi le nom.
Je suis en train de créer une macro pour rendre automatique la mise en forme, etc...
Le problème c'est que à chaque nouvelle acquisition j'ai un nouveau fichier avec un nom différent et c'est là que je bloque, voici mon code :

Sub LabVIEW()
' LabVIEW Macro
' Macro enregistrée le 05/03/2010 par STAGIAIRESOLEWA
Range("A23:G65000").Select
Selection.Replace What:=".", Replacement:=".", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.NumberFormat = "0.00"
Range("A22:E775").Select
Charts.Add
ActiveChart.ChartType = xlXYScatterSmooth
ActiveChart.SetSourceData Source:=Sheets("LabVIEW").Range("A22:E65000"), _
PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="LabVIEW"

With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub

C'est donc sur ces deux lignes en gras qu'il me faut quelquchose pour remplacer le nom du fichier (ici LabVIEW) par quelquechose qui est automatique, genre un nom universel pour ne pas à avoir à changer à chaque fois le nom dans le code à chaque nouvelle acquisition.
(J'ai déjà essayé de remplacer LabVIEW par WorkBook.name sans résultat).

Merci de votre aide.
A voir également:

3 réponses

Polux31 Messages postés 7219 Statut Membre 1 204
 
Bonjour,

Désolé de taper l'incruste.

Pour rendre ta procédure "universelle", il faut passer le nom en paramètre :

Sub LabVIEW(ByVal monNom As String) 
' ... blablabla
ActiveChart.Location Where:=xlLocationAsObject, Name:=monNom
' ... blablabla


Pour utiliser la procédure :
LabVIEW("LabVIEW")
LabVIEW("Toto")


;o)
1
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 770
 
Salut,
Dans :
ActiveChart.SetSourceData Source:=Sheets("LabVIEW").Range("A22:E65000"), _ 
PlotBy:=xlColumns 

Sheets("LabVIEW") que tu souhaites rendre "universel" représente : la feuille active. Donc remplace Sheets("LabVIEW") par ActiveSheet ce qui nous donne :
ActiveChart.SetSourceData Source:=ActiveSheet.Range("A22:E65000"), _ 
PlotBy:=xlColumns

Ensuite :
ActiveChart.Location Where:=xlLocationAsObject, Name:="LabVIEW"
attribue LabVIEW comme nom à ton objet. Là cela ne devrait pas poser de problème.
Reviens nous dire ce qu'il en est.
0
rhcpaddict Messages postés 8 Statut Membre
 
"attribue LabVIEW comme nom à ton objet. Là cela ne devrait pas poser de problème.
Reviens nous dire ce qu'il en est."
Comme ça ?

Sinon j'ai essayé sans, il y a tout de même un problème à la première ligne.

Je ne sais pas si je me suis bien explqué dans mon premier message, mais si après j'ai un fichier d'acquisition nommé "test.lvm" (et plus "LabVIEW.lvm) par exemple, je veux que ma macro marche tout de même sans la modifier (sachant que le fichier aura la même mise en forme, seul les données et le nom change). Il faut donc surement oubier ta ligne Name:="LabVIEW".

Merci.
0
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 770
 
Il faut donc surement oubier ta ligne Name:="LabVIEW".

Non car il s'agira alors d'un autre fichier. Tu peux avoir le même nom dans "x" fichiers...
Par contre les noms de fichiers n'apparaissant nul part dans ta macro, le problème est résolu.
0