• Initiateur de la discussion Initiateur de la discussion moup
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

moup

Guest
Bonjour forum,
j'ai réalisé ce programme avec un bouton parcourir qui permet de choisir le nom du fichier(text1.text)
mais si je change de nom de fichier j'ai une erreur sur(Set wsExcel = wbExcel.ActiveSheet)
private sub cmd_click()
Dim appExcel As Excel.Application 'Application Excel
Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel

Workbooks.OpenText FileName:=Text1.Text, Origin:=xlWindows, _
StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=False, Space:=True, Other:=True, FieldInfo:=Array(1, 1) 'TrailingMinusNumbers:=True
Set wbExcel = appExcel.ActiveWorkbook
Set wsExcel = wbExcel.ActiveSheet
appExcel.Visible = True
Set appExcel = Nothing
Set wbExcel = Nothing
Set wsExcel = Nothing

end sud

merci pour votre aide
 
Bonjour Moup,

Serais peut être bon pour le Zop mais bon ...

Je ne sais pas ce que tu veux faire de la variable wsExcel ni ce que tu cherches à récupérer mais essaie :

Dim wsExcel as String (ou Variant)

....

Set wsExcel = ActiveSheet.Name


Si c'est le nom que tu cherches à récupérer.

Sinon, chez moi 'Set wsExcel = wbExcel.ActiveSheet' passe bien.

Au fait, quel message d'erreur ?
Objet manquant ?
...


A vue de nez (je peux me tromper. Je suis un habitué du Zop comme je disais plus haut), tu auras aussi une erreur sur appExcel.Visible. Car Excel ne saura pas ce qu'il faut rendre visible.

Toujours à vue de nez, 'appExcel' peut être remplacé par 'Application'. Cela évite la déclaration d'une variable (si ce n'est nécessaire car nous n'avons pas le contexte de l'appli) et donc de la réservation d'espace mémoire.


Tu es dans un module standard ou de classe ?


Abel.
 
Bonjour,

Alors pour moi, avec le code en l'état :

les lignes
Other:=True,
FieldInfo:=Array(1, 1) 'TrailingMinusNumbers:=True

devraient être à la suite de l'opentext (mais c 'est peut etre un probleme de mise en page forum)

Sinon, AppExcell me parait déclaré mais pas affecté donc un
vide.visible = true, ca peut planter

Enfin, un zouli 'end sud' à la fin du code... ca fait anti général Lee quand meme, mais c'est peut etre un copier coller qui a dérapé...

Bref, tout ca pour dire que le copier coller de code , c a ne vaut pas un fichier exemple pour le débuggage
😛

(surtout que souvent, en 'anonymisant' l'exemple on trouve les gremlins dedans 🙂 )
A+

Edit : Ah oui !.. le titre... essaye de qualifier ton probleme dans le titre parce que là , pour des recherche futures, 'bug en vba' ca va pas aider des masses... oui oui.. j'ai fini de râler 😱hmy: 😛 :sick: 😱 🙂

Message édité par: 2passage, à: 04/07/2005 16:53
 
Bonjour Abel, Moup, le Forum

Idem pour moi Abel, à la lecture de ce Code on dirait une sorte de mixture entre du VBS et du VB, ou alors on est en VBA dans une autre application.

Si tu es sous VBA Excel, tu n'as nul besoin de faire instance à l'application 'Dim appExcel As Excel.Application' sauf si c'est pour tenter d'ouvrir une seconde session d'Excel.

Par contre tu peux instancer ton wsExcel as WorkSheet logiquement ça devarit passer...

Moi simplement si on est bien sous Excel voici comment je procèderai :

Private Sub cmd_click()
Dim wbExcel As Workbook
Dim wsExcel As Worksheet
Dim CheminTXT As String

CheminTXT = 'I:\\mc_prod\\CitiDirect\\Import\\Archive\\Daily.txt'
''C:\\My Documents\\Daily.txt'

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

Set wbExcel = ActiveWorkbook
Set wsExcel = ActiveSheet

'Le Reste du Traitement..........

Set wbExcel = Nothing
Set wsExcel = Nothing
End Sub


Bon Aprèm
@+Thierry
 
Hello le Forum,

Effectivement avec juste ce bout de code c'est un peu leger pour trouver la solution.

Pour ma part, pour tenir la main à Abel dans le ZOP !! 🙂 ,

je verrais bien plus loin dans le code une sauvegarde du fichier Excel sans réaffectation de la variables.

Genre il s'agit d'un fichier modèle qui s'appelle DUDUL et on affecte à Set wbExcel = appExcel.ActiveWorkbook dudul, puis le fichier est sauvegardé sous DADA et pas de réaffctation à la variable WbExcel.

et là quand on fait appelle à WbExcel... c'est le drame !! :lol:

Voila. Je sents bien le ZOP là !!

Merci de mettre un exmeple Moup si tu veux plus d'aide

++

Creepy
 
bonjour forum

voici mon programme; j'ai essayé ce que vous dissez mais ca ne marche pas


Private sub cmd_click()
Dim appExcel As Excel.Application 'Application Excel

Dim wbExcel As Excel.Workbook 'Classeur Excel
Dim wsExcel As Excel.Worksheet 'Feuille Excel
'declaration du graph
Dim objChart As Chart, objRange As Range, MaSerie As Series

Set appExcel = CreateObject('Excel.Application')
Workbooks.OpenText FileName:=Text1.text, Origin:=xlWindows, _
StartRow:=2, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=True, Tab:=False, Semicolon:=False, Comma:=False, Space:=True, Other:=True, FieldInfo:=Array(1, 1) ,TrailingMinusNumbers:=True

Set wbExcel = appExcel.ActiveWorkbook
Set wsExcel = wbExcel.ActiveSheet

Set objChart = Charts.Add


objChart.ChartType = xlXYScatterSmooth
objChart.Name = 'Nom'
objChart.HasLegend = True

Set MaSerie = objChart.SeriesCollection.NewSeries

MaSerie.Values = '=' & Worksheets(1).Range('C:C').Columns(1).Address(True, True, xlR1C3, True)

MaSerie.XValues = '=' & Worksheets(1).Range('B:B').Columns(1).Address(True, True, xlR1C2, True
appExcel.Visible = True
Set appExcel = Nothing
Set wbExcel = Nothing
Set wsExcel = Nothing
Set objChart= Nothing
End Sub

merci
 
Re

j'ai fait

Set wbExcel = ActiveWorkbook
Set wsExcel = ActiveSheet

il me donne plus l'erreur Variable objet ou variable bloc with non définie mais il m'affiche pas la courbe et quand je click sur la commande il ya erreur Permission refusé

est ce que quelqu'un a une idée?
merci pour votre aide
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
499
Réponses
5
Affichages
569
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Réponses
22
Affichages
3 K
Réponses
2
Affichages
1 K
Retour