VBA-Newbie braucht Hilfe



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: VBA-Newbie braucht Hilfe
von: Bernhard
Geschrieben am: 17.07.2002 - 15:20:20

Hallo Wissende,

...seit SAP iat alles anders...
Ich bekomme jeden Morgen eine Text-Datei per mail. Diese speichere ich auf dem Server. Soweit - sogut.

Jetzt habe ich ein Makro geschrieben um die .txt als vernünftig formatierte .xls abzuspeichern und stoße auf das Problem mit dem enlischen/deutschen Zahlenformat (Komma und Punkt vertauscht). Beim Import definiere ich die Spalte als Text damit das Format erhalten bleibt.

1. Prob: Dann möchte ich mit der TRIM Funktion die Werte in Spalte G von den führenden Leerstellen freischneiden und dann alle Felder der Spalte G mit 1 multiplizieren. Wie kann man das in VBA realisieren?

2. Prob: Die Datei wird täglich unter gleichem Namen (wg. Verknüpfungen) auf dem Server abgespeichert. Damit keine ungefragt was ändert wird die Datei bei ActiveWorkbook.SaveAs mit dem Parameter WriteResPassword schreibgeschützt. Wenn ich die Datei dann am nächsten Tag automatisch per VBA aktualieren möchte kommt der Fehler: Datei schreibgeschützt, kann nicht speichern!
Kann man die Schreibbeschänkung im Code irgendwie aufheben??

Hoffe es kann mir jemand helfen.

Gruß und Dank im Voraus,
Bernhard


nach oben   nach unten

Re: VBA-Newbie braucht Hilfe
von: Gü
Geschrieben am: 17.07.2002 - 15:37:55

zu 1.

einfach in Excel ausführen und aufzeichnen (Extra/makros/aufzeichnen)

=> Excel Tab => Zeilen markieren => Daten/Text in Spalten

zu dem Problem mit komma und Strich, falls es noch ein Problem sein sollte, bearbeiten/ersetzen


nach oben   nach unten

Re: VBA-Newbie braucht Hilfe
von: Be
Geschrieben am: 17.07.2002 - 15:41:07

Danke Gü, aber so geht es eben nicht. Alles schon probiert.

nach oben   nach unten

Re: VBA-Newbie braucht Hilfe
von: Otto Ecker
Geschrieben am: 17.07.2002 - 15:51:45

Hallo Bernhard,

Trim:

Dim rng As Range
For Each rng In ActiveSheet.UsedRange
rng.Value = WorksheetFunction.Trim(rng.Value)
Next rng

Multiplizieren:

dim zelle as range
for each zelle in activesheet.range("g1:g1000")
zelle.value=zelle.value*1
next

Sollte es nicht mit dem multiplizieren hinhauen, dann benutze sendkeys und F2

zu 2. Öffne die Datei und hebe das Kennwort auf

wechsele in den Editor, Tippe: workbooks.open und die wirst die Syntax erhalten

Gruß Otto

nach oben   nach unten

Re: VBA-Newbie braucht Hilfe
von: Bernhard
Geschrieben am: 17.07.2002 - 15:55:15

Danke Otto, werde gleich mal wieder einsteigen und probieren. Klingt aber sehr gut!
Gruß, Bernhard

nach oben   nach unten

Noch ne kleine Perfektionistenfrage
von: Bernhard
Geschrieben am: 17.07.2002 - 16:17:18

Hallo Otto,
jetzt kann ich die Zahlen endlich richtig imporieren.
Jetzt will ich aber nur die Anzahl Zeilen mit 1 multiplizieren die auch "nicht leer" sind. Sonst erhalte ich nach unten noch eine ganze menge Zeilen in den 0 steht (0*1=0).
Wie muss denn die Schleife dafür aufgebaut sein?

Gruß,
Bernhard


nach oben   nach unten

Re: Noch ne kleine Perfektionistenfrage
von: Otto Ecker
Geschrieben am: 17.07.2002 - 16:19:34

Hallo Bernhard,

dim zelle as range
for each zelle in activesheet.range("g1:g1000")
if zelle.value <>"" then
zelle.value=zelle.value*1
end if
next

Gruß Otto

nach oben   nach unten

Re: Noch ne kleine Perfektionistenfrage
von: Otto Ecker
Geschrieben am: 17.07.2002 - 16:23:26

Nachtrag:

wenn es vorkommen könnte, dass auch Texte drin stehen dann überprüfe wie folgt

if isnumeric(zelle.value) then

Gruß und Feierabend für heute

Otto

nach oben   nach unten

Du bist der Größte, Vielen Dank, Funktioniert! o.T
von: Bernhard
Geschrieben am: 17.07.2002 - 16:34:43

.

 nach oben

Beiträge aus den Excel-Beispielen zum Thema "formel"