[Catégorie modifiée VB6 --> VBA] macro sous excel 2003 et excel 2007

Signaler
Messages postés
5
Date d'inscription
mercredi 7 juillet 2010
Statut
Membre
Dernière intervention
26 mai 2012
-
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
-
Bonjour tout le monde!
j'ai un petit probleme avec mon code source avec les macro utilisees, ca fonctionne a merveille sous excel 2003 mais helas quand j'ouvre mon fichier excel sous excel 2007 certaines fonctionnalités ne marchent plus (ouvrir un fichier externe). si qulqu'un pourai m'aider et m'eclairer sur la diffirence entre les macros sur excel 2003 et 2007 ... c vraiment urgent et je vous remercie d'avance de votre aide.

5 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut

"Fichier externe" : définition ?

Ne connaissant pas la ligne de code incriminée, impossible de te répondre.
La seule solution consiste à enregistrer une macro sous 2007 pour faire l'opération souhaitée et de comparer avec le code 2003.

+ regarder dans l'aide

Ouvrir un classeur a la même syntaxe sous 2003 que sous 2007.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
5
Date d'inscription
mercredi 7 juillet 2010
Statut
Membre
Dernière intervention
26 mai 2012

desolee car j'ai pas trop detaillé !!! le fichier que je veux ouvrir c un fichier excel pour pouvoir extraire de ce derneir quelques donnees et ce en utilisant en cliquant sur un boutton cree sur mon fichier excel original ! ce boutton me permet de choisir le fichier excel souhaité sous exel 2003 mais pas sur excel 2007, donc le code est juste mais le seul probleme est le changement de version de office.
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Conclusion : Le code du bouton ne fonctionne pas.
Que veux-tu qu'on te dise de plus ?
Donne tous les détails tout de suite, on va pas jouer au chat et à la souris pendant des heures !
Quel est ce code qui ne fonctionne pas ?
Messages postés
5
Date d'inscription
mercredi 7 juillet 2010
Statut
Membre
Dernière intervention
26 mai 2012

Voici le code source !
je suis pas trop douee dans la programmation, ce qui m'etonne le plus c que ce meme code fonctionne dans excel 2003 alors porquoi pas dans excel 2007 ????!!! et c pour importer des donnees a partir d'un fichier (.txt)



LE CODE :


Sub ImportData()
'
' ImportData Macro
'

On Error GoTo ErrorHandler
ActiveSheet.Unprotect Password:=ActiveSheet.Range("Az1").Value

Range("B16:G515").Select
Selection.ClearContents
Range("B16").Select
Sheets("Utility1").Visible = True
Sheets("Utility1").Select
Columns("A:AM").Select
Selection.ClearContents
Range("A1").Select



With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;", Destination:=Range("A1"))
.Name = "X"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = True
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False


End With


Range("Copyrange").Select
Selection.Copy
Sheets("Data Entry").Select
Range("B16").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveWindow.SmallScroll Down:=2
Range("Q32").Select

Range("B16:G515").Select
Selection.Replace What:="-999.*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False

ActiveWindow.ScrollRow = 1
Sheets("Utility1").Visible = False
Range("B16").Select

ActiveSheet.Protect Password:=ActiveSheet.Range("Az1").Value
ErrorHandler:
Resume Next

'
End Sub
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Joli code.
Compilé sous Excel 2007, il ne gueule pas.
As-tu seulement vérifié que tes feuilles portaient bien ces noms ?

Supprime cet atroce Resume Next : Il masque les erreurs.
NE JAMAIS UTILISER DE RESUME NEXT sauf dans le cas où tu sais pertinament que UNE ligne de code risque de renvoyer une erreur particulière et que tu veux le gérer.

As-tu exécuté ce code en pas-à-pas ?
F9 sur une ligne de code
Le programme s'y arrêtera au prochain passage
Survole avec la souris tes variables pour visualiser leur contenu, ou va dans la fenêtre de debogage (Ctrl-G) et tape
? maVariable
pour qu'elle s'inscrive dans la fenêtre.
F8 pour avancer d'une ligne de code
F5 pour continuer normalement

Tu n'as pas beaucoup de code : tu pourrais refaire l'enregistrement de macro pour remplacer ce code.