Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Diiférencier 2 commandes en fonction de la version d'Excel

2 réponses
Avatar
RENAUD Eric
Bonjour,

Pour des raisons de portabilité, je voudrai différencier ces 2 lignes car
si je n'utilise pas l'argument Local:=True sous XL 2003, j'ai une virgule
comme séparateur alors qu'en 2000 j'ai le point-virgule
et comme derrière je traite les champs du CSV par le ; (écrit en dur dans
mon code)
Do While Not EOF(1)
' Lit les données de la ligne
Line Input #1, Donnees
PF = 3
For I = 1 To 47
If I = 1 Then
PF = InStr(1, Donnees, ";")
c'est un problème

Sous Excel 2003
ActiveWorkbook.SaveAs Filename:=MyChemin & "\EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:=False, local:=True

Sous Excel 2000
ActiveWorkbook.SaveAs Filename:=MyChemin & "\EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:=False


J'ai donc essayé ceci


If Application.Version="11.0" Then
ActiveWorkbook.SaveAs Filename:=MyChemin & "\EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:=False, local:=True
Else
ActiveWorkbook.SaveAs Filename:=MyChemin & "\EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:=False
End


Hélas sous XL 2000, j'ai une erreur au lancement ....

Erreur de compilation
Argument nommé introuvable

La compilation conditionnelle ne fonctionne pas car les versions d'Excel
sont les mêmes

#If VBA6 then ....
Quelqu'un at'il une solution ?
D'avance merci

2 réponses

Avatar
RENAUD Eric
Ne cherchez pas, j'ai trouvé la solution sur Excel labo

"RENAUD Eric" a écrit dans le message de
news:
Bonjour,

Pour des raisons de portabilité, je voudrai différencier ces 2 lignes car
si je n'utilise pas l'argument Local:=True sous XL 2003, j'ai une virgule
comme séparateur alors qu'en 2000 j'ai le point-virgule
et comme derrière je traite les champs du CSV par le ; (écrit en dur dans
mon code)
Do While Not EOF(1)
' Lit les données de la ligne
Line Input #1, Donnees
PF = 3
For I = 1 To 47
If I = 1 Then
PF = InStr(1, Donnees, ";")
c'est un problème

Sous Excel 2003
ActiveWorkbook.SaveAs Filename:=MyChemin & "EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:úlse, local:=True

Sous Excel 2000
ActiveWorkbook.SaveAs Filename:=MyChemin & "EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:úlse


J'ai donc essayé ceci


If Application.Version="11.0" Then
ActiveWorkbook.SaveAs Filename:=MyChemin & "EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:úlse, local:=True
Else
ActiveWorkbook.SaveAs Filename:=MyChemin & "EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:úlse
End


Hélas sous XL 2000, j'ai une erreur au lancement ....

Erreur de compilation
Argument nommé introuvable

La compilation conditionnelle ne fonctionne pas car les versions d'Excel
sont les mêmes

#If VBA6 then ....
Quelqu'un at'il une solution ?
D'avance merci




Avatar
Oliv'
RENAUD Eric que je salut a écrit dans

Bonjour,

Pour des raisons de portabilité, je voudrai différencier ces 2
lignes car si je n'utilise pas l'argument Local:=True sous XL 2003,
j'ai une virgule comme séparateur alors qu'en 2000 j'ai le
point-virgule
et comme derrière je traite les champs du CSV par le ; (écrit en dur
dans mon code)
Do While Not EOF(1)
' Lit les données de la ligne
Line Input #1, Donnees
PF = 3
For I = 1 To 47
If I = 1 Then
PF = InStr(1, Donnees, ";")
c'est un problème

Sous Excel 2003
ActiveWorkbook.SaveAs Filename:=MyChemin & "EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:úlse, local:=True

Sous Excel 2000
ActiveWorkbook.SaveAs Filename:=MyChemin & "EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:úlse


J'ai donc essayé ceci


If Application.Version="11.0" Then
ActiveWorkbook.SaveAs Filename:=MyChemin & "EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:úlse, local:=True
Else
ActiveWorkbook.SaveAs Filename:=MyChemin & "EDI.csv", FileFormat _
:=xlCSV,
CreateBackup:úlse
End


Hélas sous XL 2000, j'ai une erreur au lancement ....

Erreur de compilation
Argument nommé introuvable

La compilation conditionnelle ne fonctionne pas car les versions
d'Excel sont les mêmes

#If VBA6 then ....
Quelqu'un at'il une solution ?
D'avance merci



Moi je fais cela :
Il faut bien avoir 2 macros séparées sinon une erreur s'affiche.


Public nom_fichier
Public fpath

Sub reouvre()
' Macro2 Macro
' Macro enregistrée le 17/12/2003 par Olivier CATTEAU
VersExcel = Application.Version
nom_fichier = ActiveWorkbook.Name
fpath = ActiveWorkbook.Path
Workbooks(nom_fichier).Close SaveChanges:úlse
If VersExcel = "11.0" Then
xl2003
Else
If VersExcel = "10.0" Then
xl2003
Else
Workbooks.OpenText Filename:=fpath & "" & nom_fichier, Origin:=xlWindows,
_
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:úlse,
Comma:úlse _
, Space:úlse, Other:úlse

End If
End If

' MsgBox VersExcel

End Sub



Sub xl2003()
Workbooks.OpenText Filename:=fpath & "" & nom_fichier, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
Tab:=True, local:=True
End Sub

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Have a nice day
Oliv'
Pour me joindre : http://cerbermail.com/?V8r2o1YHl4
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~