Question de debutant

Résolu
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009 - 12 févr. 2009 à 21:44
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009 - 14 févr. 2009 à 06:56
je pense être au bon endroit:

Bonjour, je suis en train de faire une macro pour  ouvrir un fichier
texte créé par un onduleur. J'ai fait un bouton qui ouvre le fichier
txt dans un nouveau classeur mais je n'arrive pas a rendre ce classeur
actif: si je sélectionne dans la macro 2 colonnes, ce sont les colonnes
du fichier ou se trouve la macro qui sont sélectionnées...Auriez vous
une idée?

2eme question, quand j'ouvre le fichier txt, est il possible de créer un graphique depuis le fichier ou se trouve la macro?

merci pour vos réponses

14 réponses

Supra3000 Messages postés 159 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 8 janvier 2010 2
12 févr. 2009 à 22:29
nomdufichier = ExtractFileName("pathdetonficheirtexte")

Public Function ExtractFileName(ByVal sFullPath As String) As String
    If InStr(sFullPath, "") = 0 Or Right(sFullPath, 1) = "" Then
        ExtractFileName = ""
        Exit Function
    End If
    ExtractFileName = Mid(sFullPath, InStrRev(sFullPath, "") + 1)
End Function

Bonne continuation
3
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
12 févr. 2009 à 23:26
filetoopen est le nom complet de ton fichier texte, par exemple "c:\onduleur.txt".


Par conséquent Windows(fileToOpen).Activate n'est pas bon. Soit tu extrais le nom du fichier avec la fonction extractFileName proposée par Supra3000 ou bien par Workbooks(Workbooks.Count)

Donc, essaie l'une de ces méthodes :


Windows(extactFileName(fileToOpen)).Activate ou Windows(Workbooks(Workbooks.Count)).Activate


Amicalement
3
Supra3000 Messages postés 159 Date d'inscription lundi 18 février 2008 Statut Membre Dernière intervention 8 janvier 2010 2
12 févr. 2009 à 22:08
1 - Windows("noduclasseur").Activate

2 - Oui tu peux utiliser l'enregistreur de macro pour construire un graphique avec du code. Il ne te reste qu'a l'adapter.

Bonne continuation
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
12 févr. 2009 à 22:08
- Pour rendre actif le classeur onduleur.xls :

 WorkBooks("onduleur.xls").Activate

- tu peux facilement créer un graphique dont la source de données est dans un autre classeur. Tu dois simplement spécifier le classeur et la feuille dans la syntaxe de la source de données. Par exemple :

[onduleur]Feuil1!A1:A100

Amicalement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
12 févr. 2009 à 22:09
Crotte de bique ! Battu de 5 secondes...

C'est pô juste !
0
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009
12 févr. 2009 à 22:26
j'avais bien essayer  WorkBooks("onduleur.xls").Activate mais j'ai une erreur 9 "l'indice n'appartient pas a la selection".
je choisis le fichier txt a ouvrir par "GetOpenFilename" et le nom du fichier ouvert est dans "fileToOpen" (le fichier est different a chaque fois).J'ai essayé "WorkBooks("fileToOpen").Activate "   mais cela ne va pas...
Je ne sais pas si cela est important mais c'est un fichier txt que j'ouvre dans excel avec la fonction "Workbooks.OpenText Filename".

merci pour tout!
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
12 févr. 2009 à 22:46
J'ai aussi l'erreur 9, par contre c'est ok si on enlève l'extension .xls :
WorkBooks("onduleur").Activate
0
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009
12 févr. 2009 à 22:52
je crois que je n'ai pas compris (en fait j'en suis meme sur!)
j'arrive a ouvrir le fichier txt que je veux via un bouton, ce qui m'ouvre un nouveau classeur mais c'est ce classeur que je n'arrive pas a activer, il prend toujours le fichier qui contient la macro pour selectionner les colonnes (voir  ci dessous)

Private Sub CommandButton1_Click()

fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt")
If fileToOpen <> False Then

Workbooks.OpenText Filename:=fileToOpen, Origin:=xlWindows, _
StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)

Windows(fileToOpen).Activate

    Columns("B:C").Select
    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.SetSourceData Source:=Sheets("nouvelle installation_2009_02_1"). _
        Columns("B:C")
    ActiveChart.Location Where:=xlLocationAsObject, Name:= _
        "nouvelle installation_2009_02_1"
    ActiveChart.Legend.Select
    Selection.Delete
    ActiveSheet.Shapes("Graphique 2").ScaleWidth 3.75, msoFalse, _
        msoScaleFromTopLeft
    ActiveSheet.Shapes("Graphique 2").ScaleHeight 1.5, msoFalse, _
        msoScaleFromTopLeft
    Windows("nouvelle installation_2009_02_12_0.xls").ScrollColumn = 1

End If
End Sub
0
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009
13 févr. 2009 à 08:20
je vais paraitre idiot mais je ne sais pas ou mettre la fonction de supra3000: j'ai fait plusieurs essai mais il n'en tient pas compte! je n'ai pas trouvé de site qui explique ou mettre les differentes fonctions, macro etc...
0
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009
13 févr. 2009 à 09:37
a y est j'ai reussi! j'ia fait une erreur dans "extractFileName" j'ai oublié le "r". Merci pour votre aide a tous.
Je continue ma macro et je fais appel a vous des que j'ai un soucis ou je suis bloqué!
0
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009
13 févr. 2009 à 14:44
encore bloqué!

j'ai la variable "fileToOpen" utilisée dans "feuill1" et tout fonctionne mais des que j'utilise "fileToOpen" dans le module 1 il me retourne une valeur vide ! comment faire pour que cette variable soit reconnue dans tous les modules?
0
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009
13 févr. 2009 à 17:25
c'est bon avec un peu de perséverance...je n'avais pas declare ma variable dans la bonne feuille!!!
0
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
13 févr. 2009 à 18:49
Hello

Si ça marche, je te suggère de poster le code et faire "réponse acceptée" et éventuellement remercier Supra3000 qui t'a donné l'information principale.

Amicalement
0
professeurt Messages postés 25 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 14 février 2009
14 févr. 2009 à 06:56
un grand merci a Supra3000ainsi qu'a Orohena pour votre aide.

Public maPlage
Public fileToOpen
Sub macro1()
Workbooks("ouverture fichier maxtalk.xls").Activate
If Range("a1") = "test" Then
'Workbooks("*.txt").Activate
Windows(ExtractFileName(fileToOpen)).Activate
  Range("b:d").Select
    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.Legend.Select
    Selection.Delete
    Workbooks("ouverture fichier maxtalk.xls").Close SaveChanges:=False
   
 Else
 
 Windows(ExtractFileName(fileToOpen)).Activate
 
 'Workbooks("nouvelle installation_2009_02_11_0.txt").Activate
 Range("b:c").Select
    Charts.Add
    ActiveChart.ChartType = xlLine
    ActiveChart.Legend.Select
    Selection.Delete
 'FermerClasseur()
 
Workbooks("ouverture fichier maxtalk.xls").Close SaveChanges:=False
End If
End Sub

Public Function ExtractFileName(ByVal sFullPath As String) As String
    If InStr(sFullPath, "") = 0 Or Right(sFullPath, 1) = "" Then
        ExtractFileName = ""
        Exit Function
    End If
    ExtractFileName = Mid(sFullPath, InStrRev(sFullPath, "") + 1)
End Function

Private Sub CommandButton1_Click()
fileToOpen = Application _
.GetOpenFilename("Text Files (*.txt), *.txt", , "fichier maxtalk")
If fileToOpen <> False Then
Workbooks.OpenText Filename:=fileToOpen, Origin:=xlWindows, _
StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1)

Call macro1
End If
End Sub

Private Sub tension_Click()
'insertion d'une condition : si la cas ea cocher checkbox1 est activée => se termine par then
If tension.Value = True Then
Range("a1") = "test"
Else: Range("a1") = ""

'fin du test de condition
End If
End sub
0
Rejoignez-nous