Diiférencier 2 commandes en fonction de la version d'Excel
2 réponses
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
Ne cherchez pas, j'ai trouvé la solution sur Excel labo
"RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de
news:eFUg1Qi1FHA.3124@TK2MSFTNGP12.phx.gbl...
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
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
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
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
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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
RENAUD Eric <erenaud@fr.fm> que je salut a écrit dans
eFUg1Qi1FHA.3124@TK2MSFTNGP12.phx.gbl
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
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
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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
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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~