![]() |
|
|||||||
| Newsgroup microsoft.public.de.excel Forum microsoft.public.de.excel |
![]() |
|
|
Themen-Optionen | Ansicht |
|
#11
|
|||
|
|||
|
Martin Worm schrieb:
> da ich regelmäßig kompilieren auslöse, kommt das für mich nicht in > Betracht. Tja, so ist das halt, ich hab auch erstmal dumm gekuckt das Excel hier keinen Schalter hat, mit dem man ala "#if XL2000 then" bedingten Code ausführen kann. Nun ja, er ist nicht da, kann man nix machen, aaaaaaaaaaaaber, es gibt da ja noch eine Möglichkeit, die Frage ist ob Sie Dir besser gefällt. :-) Also sagen wir mal die Routine die uns die Mappe als CSV speichert befindet sich in Modul1, das wissen wir, weil wir sie ja da reingeschrieben haben und wir sagen mal sie sieht so aus: Sub SaveAsCSV(FName As String, WB As Workbook) End Sub Das läßt sich garantiert unter jeder Excel-Version kompilieren. *fiesgrins* Nönö, keine Verarsche, jetzt kommt noch etwas Code. Andreas. Private Sub Workbook_Open() Dim I As Long, J As Long With ThisWorkbook.VBProject.VBComponents("Modul1") _ .CodeModule On Error Resume Next I = .ProcBodyLine("SaveAsCSV", 0) If I > 0 Then J = .ProcCountLines("SaveAsCSV", 0) If J > 2 Then .DeleteLines I + 1, J - 2 Select Case Val(Application.Version) Case 9 .InsertLines I + 1, " WB.SaveAs Filename:=FName, " & _ "FileFormat:=xlCSV" Case Else .InsertLines I + 1, " WB.SaveAs Filename:=FName, " & _ "FileFormat:=xlCSV, Local:= True" End Select End If End With End Sub |
|
|
||||
|
||||
|
|
|
#12
|
|||
|
|||
|
Am Fri, 06 Nov 2009 15:26:06 +0100,schrieb Bernhard Sander:
hallo, >> da ich regelmäßig kompilieren auslöse, >Rein interessehalber: Wozu ist das gut? >VBA-Prozeduren werden doch automatisch kompiliert, wenn sie gestartet werden. ich schreib nicht nur für mich. Und die, die es sonst benutzen, sollen keinen Code kriegen, der aus vermeidbaren Gründen abstürzt mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#13
|
|||
|
|||
|
Am Fri, 06 Nov 2009 15:49:44 +0100,schrieb Andreas Killer:
hallo, >Martin Worm schrieb: > >> da ich regelmäßig kompilieren auslöse, kommt das für mich nicht in >> Betracht. >Tja, so ist das halt, ich hab auch erstmal dumm gekuckt das Excel hier >keinen Schalter hat, mit dem man ala "#if XL2000 then" bedingten Code >ausführen kann. Bitte? Ich glaube, ich beende das hier, trotz das wir beide deutsch schreiben, verstehen wir uns nicht. als Abschluß, das kann man sicher auch mit Application.run lösen mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#14
|
|||
|
|||
|
Hallo Martin,
>>> da ich regelmäßig kompilieren auslöse, >> Rein interessehalber: Wozu ist das gut? >> VBA-Prozeduren werden doch automatisch kompiliert, wenn sie gestartet werden. > > ich schreib nicht nur für mich. Und die, die es sonst benutzen, sollen > keinen Code kriegen, der aus vermeidbaren Gründen abstürzt Um das sicherzustellen sehe ich die einzig vernünftige Variante darin, diesen Code nach jeder Änderung auszutesten. Und dann wird's zwangsläufig kompiliert. Gruß Bernhard Sander |
|
#15
|
|||
|
|||
|
Martin Worm schrieb:
> Bitte? Ich glaube, ich beende das hier, trotz das wir beide deutsch > schreiben, verstehen wir uns nicht. Wieso? Es geht doch darum SaveAs unter verschiedenen Versionen auszuführen und dabei trotzdem das Projekt ohne Fehler kompilieren zu können. > als Abschluß, das kann man sicher auch mit Application.run lösen Da habe ich keine Idee wie das "anständig" gehen könnte. Wäre nett wenn Du mir das mal zeigst. Ich kompiliere meine Projekte auch ab und an immer um noch irgendwelche Fehler aufzuspüren, vergessene Variablen und sowas, ich hab das gleiche Problem wie Du.... nur keine bessere saubere Lösung als die mit den 2 Sub's. Wenn Du eine hast, dann fände ich es nett wenn Du sie mal zeigst. Andreas. |
|
#16
|
|||
|
|||
|
Am Fri, 06 Nov 2009 16:45:48 +0100,schrieb Bernhard Sander:
hallo, >>>> da ich regelmäßig kompilieren auslöse, >>> Rein interessehalber: Wozu ist das gut? >>> VBA-Prozeduren werden doch automatisch kompiliert, wenn sie gestartet werden. >> >> ich schreib nicht nur für mich. Und die, die es sonst benutzen, sollen >> keinen Code kriegen, der aus vermeidbaren Gründen abstürzt >Um das sicherzustellen sehe ich die einzig vernünftige Variante darin, diesen >Code nach jeder Änderung auszutesten. Und dann wird's zwangsläufig kompiliert. mach ich manchmal auch. Kommt auf die Komplexität des Makros an. mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#17
|
|||
|
|||
|
Am Fri, 06 Nov 2009 16:47:38 +0100,schrieb Andreas Killer:
hallo, >Martin Worm schrieb: > >> als Abschluß, das kann man sicher auch mit Application.run lösen >Da habe ich keine Idee wie das "anständig" gehen könnte. Wäre nett >wenn Du mir das mal zeigst. ich ziehe die Behauptung zurück. :-( Ich hab mich geirrt. mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#18
|
|||
|
|||
|
Am Fri, 06 Nov 2009 20:52:11 +0100,schrieb Martin Worm:
hallo, >Am Fri, 06 Nov 2009 16:47:38 +0100,schrieb Andreas Killer: > hallo, >>Martin Worm schrieb: >> > >>> als Abschluß, das kann man sicher auch mit Application.run lösen >>Da habe ich keine Idee wie das "anständig" gehen könnte. Wäre nett >>wenn Du mir das mal zeigst. > >ich ziehe die Behauptung zurück. :-( mir ist nochwas eingefallen, was ich wegen Urlaubs grad nicht testen kann(bei XL2000 läufts) CallByName ActiveWorkbook, "SaveAs", VbMethod, "Dateiname", xlCSV mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
#19
|
|||
|
|||
|
Martin Worm schrieb:
> mir ist nochwas eingefallen, > was ich wegen Urlaubs grad nicht testen kann(bei XL2000 läufts) > > CallByName ActiveWorkbook, "SaveAs", VbMethod, "Dateiname", xlCSV Wat is dat denn für'n Dings? :-))) Hab ich ja noch nie gesehen. Hmm, daraus könnte man was basteln... kuck mal ob das unter XL2000 sich kompilieren läßt und auch läuft. BTW, Local musste ich mit einem 2ten L versehen, weil es ein reserviertes Wort unter XL2002 ist. Andreas. Sub Test() ObjSaveAs ThisWorkbook, "test.csv", xlCSV, Locall:=True End Sub Sub ObjSaveAs(Obj As Object, _ Optional FileName, _ Optional ByVal FileFormat As XlFileFormat, _ Optional Password, _ Optional WriteResPassword, _ Optional ReadOnlyRecommended, _ Optional CreateBackup, _ Optional AccessMode, _ Optional ConflictResolution, _ Optional AddToMru, _ Optional TextCodepage, _ Optional TextVisualLayout, _ Optional Locall) 'Speichert Änderungen am Diagramm oder Arbeitsblatt oder an _ der Arbeitsmappe in einer anderen Datei, berücksichtigt _ dabei die Excel-Version If Obj Is Nothing Then Exit Sub If Not (TypeOf Obj Is Chart Or TypeOf Obj Is Worksheet Or _ TypeOf Obj Is Workbook) Then Exit Sub If Val(Application.Version) < 10 Then CallByName Obj, "SaveAs", VbMethod, FileName, FileFormat, _ Password, WriteResPassword, ReadOnlyRecommended, _ CreateBackup, AccessMode, ConflictResolution, AddToMru, _ TextCodepage, TextVisualLayout Else CallByName Obj, "SaveAs", VbMethod, FileName, FileFormat, _ Password, WriteResPassword, ReadOnlyRecommended, _ CreateBackup, AccessMode, ConflictResolution, AddToMru, _ TextCodepage, TextVisualLayout, Locall End If End Sub |
|
#20
|
|||
|
|||
|
Am Sat, 07 Nov 2009 08:22:38 +0100,schrieb Andreas Killer:
hallo, >Martin Worm schrieb: > >> mir ist nochwas eingefallen, >> was ich wegen Urlaubs grad nicht testen kann(bei XL2000 läufts) >> >> CallByName ActiveWorkbook, "SaveAs", VbMethod, "Dateiname", xlCSV >Wat is dat denn für'n Dings? :-))) Hab ich ja noch nie gesehen. > >Hmm, daraus könnte man was basteln... kuck mal ob das unter XL2000 >sich kompilieren läßt und auch läuft. es läuft unter XL2000 :-) CallByName versteht leider keine benannten Parameter. VBA stört sich aber nicht daran, wenn man mehr Parameter eingibt, als die Methode hat(erst bei Ausführung). Habe beides ausprobiert. :-) Bin gespannt, ob der OP sich nochmal meldet. Jetzt hat er schon 3 Möglichkeiten, sein Problem zu lösen. mit freundlichen Grüßen Martin Worm -- benutze XL 2000 und Win XP SpX |
|
|
|
|
![]() |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Kompilierung sehr langsamt / CF 3.5 | Jens Tönsing | Newsgroup microsoft.public.de.german.entwickler.dotnet.vb | 2 | 05-29-2009 02:44 PM |
| Kompilierung 32Bit / 64Bit | Stefan Theobald | Newsgroup microsoft.public.de.german.entwickler.dotnet.vb | 2 | 04-27-2009 08:58 PM |
| Just-in-time Kompilierung | Rolf1964 | Newsgroup microsoft.public.de.german.entwickler.dotnet.vb | 0 | 08-15-2008 01:59 PM |
| bedingte kompilierung .Net-Version | Gabor Steingart | Newsgroup de.comp.lang.delphi.misc | 0 | 10-16-2007 12:06 AM |
| Kompilierung schlägt fehl | Erik | Newsgroup de.comp.text.tex | 5 | 09-15-2007 02:33 PM |