Comment créer une macro qui peut s'effectuer sur pls fichiers
Résolu
ttr125
-
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12249 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voici mon petit problème je voudrais créer une macro de type « générale » si on peut dire ... une macro qui pourrait s'utiliser dès que j'ouvre n'importe quel fichier, car quand je créer ma macro celle-ci marche mais me met une erreur N°9 cette erreur est que je n'utilise pas la macro avec le bon fichier c'est-à-dire avec le fichier où j'ai créé cette macro ... comment faire ? j'ai effectué plusieurs teste, mais là je sèche..
La macro que je veux créer est que si j'ouvre diffèrent fichier. tRd cette macro me transforme ce fichier en xls et me trace une courbe..
J'espère avoir été claire dans mon explication merci de votre aide
<config>Windows xp / Internet Explorer 10.0<//> excel 2000
Voici mon petit problème je voudrais créer une macro de type « générale » si on peut dire ... une macro qui pourrait s'utiliser dès que j'ouvre n'importe quel fichier, car quand je créer ma macro celle-ci marche mais me met une erreur N°9 cette erreur est que je n'utilise pas la macro avec le bon fichier c'est-à-dire avec le fichier où j'ai créé cette macro ... comment faire ? j'ai effectué plusieurs teste, mais là je sèche..
La macro que je veux créer est que si j'ouvre diffèrent fichier. tRd cette macro me transforme ce fichier en xls et me trace une courbe..
J'espère avoir été claire dans mon explication merci de votre aide
<config>Windows xp / Internet Explorer 10.0<//> excel 2000
A voir également:
- Comment créer une macro qui peut s'effectuer sur pls fichiers
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Vous devez disposer d'une autorisation pour effectuer cette action - Guide
- Creer un fichier .bat - Guide
- Comment créer un compte gmail - Guide
17 réponses
Bonjour,
La procédure sur un classeur de base ou un classeur de macro personnelle.
Je pense que votre code comporte une erreur, par contre il est impossible de vous aider sans l'entier de ce code.
Salutations.
Le Pingou
La procédure sur un classeur de base ou un classeur de macro personnelle.
Je pense que votre code comporte une erreur, par contre il est impossible de vous aider sans l'entier de ce code.
Salutations.
Le Pingou
Voici le code que j'ai obtenu
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 07/06/2013 par alliance concept
'
' Touche de raccourci du clavier: Ctrl+q
'
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1))
Range("F:F,H:H,J:J").Select
Range("J1").Activate
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Range("F:F,H:H,J:J").Select, PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
je sais que mon problème vient du Range mais je sais pas comment l'écrire merci
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 07/06/2013 par alliance concept
'
' Touche de raccourci du clavier: Ctrl+q
'
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1))
Range("F:F,H:H,J:J").Select
Range("J1").Activate
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Range("F:F,H:H,J:J").Select, PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
je sais que mon problème vient du Range mais je sais pas comment l'écrire merci
Bonjour,
Merci.
Eh bien cette procédure s'applique uniquement au classeur actif et la feuille active (note : donc depuis le classeur ou la procédure est lancé.
Dans le code on ne trouve pas qu'elle est la feuille qui contient les données pour le graphique et non plus sûr qu'elle feuille est affichée le dit graphique.
Sans savoir exactement ce que vous voulez réaliser en détail, c'est impossible dans dire plus.
Merci.
Eh bien cette procédure s'applique uniquement au classeur actif et la feuille active (note : donc depuis le classeur ou la procédure est lancé.
Dans le code on ne trouve pas qu'elle est la feuille qui contient les données pour le graphique et non plus sûr qu'elle feuille est affichée le dit graphique.
Sans savoir exactement ce que vous voulez réaliser en détail, c'est impossible dans dire plus.
Bonjour, tous d'abords merci pour vos réponses.
Je suis arrivée à corrigé l'erreur 9 ,mais maintenant j'ai l'erreur 1004 .... Ce que je veux faire exactement est simple je vais récupérer des informations d'un automate en fichier .trd (comme un .txt ) donc voilà un exemple de ce que je récupéré 12525325;2566352;16-05-2013;14:51:36;MAIN.volt;3.000000;Main.puissance;1.000000;MAIN.tension;3.0000;
Donc ma macro sépare a chaque point virgule affecte chaque info dans les colonnes A,B,C.. (ex:A:12525325 B:2566352 ect..) ensuite je sélectionne les colonnes qui m'intéressent pour le tracé de mes courbes et je créer un graphique ,mais le problème est que mon tableau peut aller de 1à5 ou de 1à.... et cela je ne peux pas le savoir donc je ne sais pas comment faire pour généraliser mon code pour qu'il accepte quel que soit le nombre de ligne
j'espère avoir été assez claire malgré tous merci d'avance
Je suis arrivée à corrigé l'erreur 9 ,mais maintenant j'ai l'erreur 1004 .... Ce que je veux faire exactement est simple je vais récupérer des informations d'un automate en fichier .trd (comme un .txt ) donc voilà un exemple de ce que je récupéré 12525325;2566352;16-05-2013;14:51:36;MAIN.volt;3.000000;Main.puissance;1.000000;MAIN.tension;3.0000;
Donc ma macro sépare a chaque point virgule affecte chaque info dans les colonnes A,B,C.. (ex:A:12525325 B:2566352 ect..) ensuite je sélectionne les colonnes qui m'intéressent pour le tracé de mes courbes et je créer un graphique ,mais le problème est que mon tableau peut aller de 1à5 ou de 1à.... et cela je ne peux pas le savoir donc je ne sais pas comment faire pour généraliser mon code pour qu'il accepte quel que soit le nombre de ligne
j'espère avoir été assez claire malgré tous merci d'avance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Merci pour les informations.
Cependant ou se trouve les données converties ( de .trd en .xls) ... !
Sur le même classeur que le graphique .... ?
Décrire exactement ce que vous réalisez manuellement.... !
Merci pour les informations.
Cependant ou se trouve les données converties ( de .trd en .xls) ... !
Sur le même classeur que le graphique .... ?
Décrire exactement ce que vous réalisez manuellement.... !
Bonjour, oui la conversion se trouve sur le même classeur que le graphique je le convertie ensuite je créer mon graphe mais le problème exacte que j'ai est la taille de mon trd qui varie et quand je créer une macro elle se fait avec la taille que je lui est donner mais comment lui dire quel peut varier tous le tant ?
Bonjour,
Supposé que la première ligne de données et la [1]
Trouver la dernière ligne de la colonne [F] avec le code qui suit
Et votre code pour la source données du graphique devient :
......
Supposé que la première ligne de données et la [1]
Trouver la dernière ligne de la colonne [F] avec le code qui suit
deli= Cells(Rows.Count, 6).End(xlUp).Rowqui remplace cette ligne {Range("F:F,H:H,J:J").Select}
Et votre code pour la source données du graphique devient :
......
Source:= Range("F1:F" & deli & ",H1:H" & deli & ",J1:J" & deli)
Bonjour, pour commencer merci de ton aide malheureusement cela ne marche pas je n'est même plus mes courbes :( voici le code actuel :
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 07/06/2013 par alliance concept
'
' Touche de raccourci du clavier: Ctrl+q
'
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1))
deli = Cells(Rows.Count, 6).End(xlUp).Row
Range("J1").Activate
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Range("F1:F" & deli & ",H1:H" & deli & ",J1:J" & deli).Select, PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
je vais essayer de vous joindre mon fichier .trd
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 07/06/2013 par alliance concept
'
' Touche de raccourci du clavier: Ctrl+q
'
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1))
deli = Cells(Rows.Count, 6).End(xlUp).Row
Range("J1").Activate
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Range("F1:F" & deli & ",H1:H" & deli & ",J1:J" & deli).Select, PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
je vais essayer de vous joindre mon fichier .trd
Bonjour,
Avec le fichier et le classeur si vous le désirez.
Le code fonctionne parfaitement chez moi.
Note dans le code que j'ai transmis il n'y a pas de [.Select] pour l'objet Range ....
Avec le fichier et le classeur si vous le désirez.
Le code fonctionne parfaitement chez moi.
Note dans le code que j'ai transmis il n'y a pas de [.Select] pour l'objet Range ....
j'ai essayé avec et sans .select mais ça ne marche toujours pas par contre je n'arrive pas a joindre mes fichiers comment puis je faire ?
Bonjour,
Plus d'un fichier, alors les compresser [ZIP ou RAR] et mettre le fichier compressé sur https://www.cjoint.com/ et poster le lien.
Plus d'un fichier, alors les compresser [ZIP ou RAR] et mettre le fichier compressé sur https://www.cjoint.com/ et poster le lien.
Bonjour,
Avec votre procédé, il est nécessaire d'avoir le nom de la feuille de données.
J'ai adapté votre code et c'est bon pour moi.
Votre fichier : https://www.cjoint.com/?3FrlMWBDt93
Avec votre procédé, il est nécessaire d'avoir le nom de la feuille de données.
J'ai adapté votre code et c'est bon pour moi.
Votre fichier : https://www.cjoint.com/?3FrlMWBDt93
Salut ,
j'ai actuellement modifier mon code Vb et tous marche pour le mieux encore merci de ton aide une petite question j'ai rajouté la date et l'heures sur mon graphique tous marches pour le mieux mais j'ai une question tous d'abords voila mon code :
Sub Consommation_éléctrique()
'
' Consommation_éléctrique Macro
' Macro enregistrée le 25/06/2013 par alliance concept création courbe consommation éléctrique
'
' Touche de raccourci du clavier: Ctrl+w
' *** récupérer le nom de la feuille source des données
sh = ActiveSheet.Name
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1))
deli = Cells(Rows.Count, 3).End(xlUp).Row
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets(sh).Range("C1:C" & deli & ",D1:D" & deli & ",F1:F" & deli & ",H1:H" & deli & ",J1:J" & deli), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Name = "=""volt"""
ActiveChart.SeriesCollection(2).Name = "=""puissance"""
ActiveChart.SeriesCollection(3).Name = "=""tension"""
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Conso"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Consommation éléctriques"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
est ma question est que si dans le fichier que je j'avais posté je n'est pas les colonnes H et J il me met une erreur est ce que je peut standardiser mon code ?
j'espère que je suis claire merci de votre aide
j'ai actuellement modifier mon code Vb et tous marche pour le mieux encore merci de ton aide une petite question j'ai rajouté la date et l'heures sur mon graphique tous marches pour le mieux mais j'ai une question tous d'abords voila mon code :
Sub Consommation_éléctrique()
'
' Consommation_éléctrique Macro
' Macro enregistrée le 25/06/2013 par alliance concept création courbe consommation éléctrique
'
' Touche de raccourci du clavier: Ctrl+w
' *** récupérer le nom de la feuille source des données
sh = ActiveSheet.Name
Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1))
deli = Cells(Rows.Count, 3).End(xlUp).Row
Charts.Add
ActiveChart.ChartType = xlLineMarkers
ActiveChart.SetSourceData Source:=Sheets(sh).Range("C1:C" & deli & ",D1:D" & deli & ",F1:F" & deli & ",H1:H" & deli & ",J1:J" & deli), PlotBy:=xlColumns
ActiveChart.SeriesCollection(1).Name = "=""volt"""
ActiveChart.SeriesCollection(2).Name = "=""puissance"""
ActiveChart.SeriesCollection(3).Name = "=""tension"""
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="Conso"
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Consommation éléctriques"
.Axes(xlCategory, xlPrimary).HasTitle = False
.Axes(xlValue, xlPrimary).HasTitle = False
End With
End Sub
est ma question est que si dans le fichier que je j'avais posté je n'est pas les colonnes H et J il me met une erreur est ce que je peut standardiser mon code ?
j'espère que je suis claire merci de votre aide
Bonjour,
Je viens de tester votre code et il n'y a aucun message d'erreur.
Où est donc votre problème.... ?
Je viens de tester votre code et il n'y a aucun message d'erreur.
Où est donc votre problème.... ?
Bonjour,
Voici une proposition légèrement modifiée, une feuille pour fichier (trd) et une pour les données utilisées pour le graphique.
Proposition : https://www.cjoint.com/?3FzxXh5q6Al
Voici une proposition légèrement modifiée, une feuille pour fichier (trd) et une pour les données utilisées pour le graphique.
Proposition : https://www.cjoint.com/?3FzxXh5q6Al