*** EXCEL - Problem ***

Diskutiere *** EXCEL - Problem *** im Developer Network Forum im Bereich Hardware & Software Forum; Hi, ich weiss nicht genau, ob ich 100%ig on-Topic bin, aber ich versuch mal eben schnell meine Frage zu erklären. Ich habe eine Excel Tabelle in...
  • *** EXCEL - Problem *** Beitrag #1
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Hi,

ich weiss nicht genau, ob ich 100%ig on-Topic bin, aber ich versuch mal eben schnell meine Frage zu erklären.
Ich habe eine Excel Tabelle in deren Spalte F ein Preis in DM angegeben ist. Nun möchte ich, dass die Spalte G automatisch den Wert der Spalte F (allerdings in €) umgerechnet anzeigt. Das Problem ist, das dies relativ Zeilenunabhängig geschehen muss, da in die Tabelle ständig neue Zeilen eingefügt bzw. entfernt werden. => G9=F9*Eurokurs funktioniert nicht. Es müsste also etwas abstrakter, vielleicht: G(aktuelleZeile)=F(AktuelleZeile)*Eurokurs.
Ist sowas möglich ?
Mein 2. Problem ist, dass das ganze unter Excel für Windows 95 (EXCEL 7) laufen muss.

Bin für jeden Hinweis dankbar.

CU

PS: Vielleicht geht das ja nur mit VBA und dann bin ich doch nicht Off-Topic. :D

PSS: SCHNAPSPOSTING. (555) SCHNAPS FUER ALLE !!!



[Dieser Beitrag wurde von FerFemNemBem am 12. Oktober 2000 editiert.]
 
  • *** EXCEL - Problem *** Beitrag #2
Chrisu

Chrisu

Bekanntes Mitglied
Dabei seit
30.11.1999
Beiträge
1.364
Reaktionspunkte
0
Ort
EnterpriZe Elite
hmm, da gibt es mehrere Möglichkeiten -> du könntest einfach jedes Mal, wenn du Zeilen hinzufügst, das Format in die neue Zeile (bzw. in das betreffende Feld dieser Zeile) übertragen, du könntest aber auch per Makro jedes Mal für jede Zeile den Kurs berechnen lassen, indem du bei der ersten Zeile anfängst, den Kurs berechnest, in die gewünschte Zelle reinschreibst und mit der 2. Zeile fortfährst, bis er in der Schleife an jenem Punkt anlangt, wo keine Daten mehr im Feld vorzufinden sind ...

diese beide Methode müßten in Excel 7 funktionieren - da, wie du sagst, jeder Zeit Zeilen hinzukommen werden, kommt nur die Methode in Frage, daß man Zeile für Zeile durchgeht bzw. zumindest jene Zellen bearbeitet, die noch ohne Inhalt sind ...

wenn du was die Realisierung Fragen hast, meld dich halt noch mal ...
 
  • *** EXCEL - Problem *** Beitrag #3
C

COGE

Bekanntes Mitglied
Dabei seit
13.01.1999
Beiträge
6.151
Reaktionspunkte
3
Ort
hinten wie von vorne
Vielleicht ist das ne Lösung :

Schreib in eine Zeile in die Zelle G =0,123(halt den Eurokurs) * F[Zeilennummer]

z.B. in G3 =F3 * Eurokurs

Und dann F3 und G3 und alle Zellen drunter markieren.
Auf Bearbeiten->ausfüllen->unten
Die Zeilennummern werden mit angepasst.


...COGE...
 
  • *** EXCEL - Problem *** Beitrag #4
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Hi,

das mit dem Makro klingt prima. Die anderen Möglichkeiten kommen nicht in Frage, da derjenige, für den ich diese Tabelle erstellt habe nicht viel mehr kann, als eben den Computer einschalten, Excel starten und Zeilen einfügen bzw. löschen und natürlich die Tabelle ausfüllen.
Da ich mich mit VBA noch nicht auseinandergesetzt habe (und das auch nicht weiter brauche ... ausser eben für diese Tabelle) Waere ich für ein paar Tip's sehr dankbar !

CU & THX im Voraus.

[Dieser Beitrag wurde von FerFemNemBem am 13. Oktober 2000 editiert.]
 
  • *** EXCEL - Problem *** Beitrag #5
Chrisu

Chrisu

Bekanntes Mitglied
Dabei seit
30.11.1999
Beiträge
1.364
Reaktionspunkte
0
Ort
EnterpriZe Elite
das dürfte dein Problemchen beseitigen:
der folgende Code (in ein Makro einzufügen, dieses Makro kannst du dann an ein Symbol in der Symbolleiste hängen bzw. ein Tastenkürzel vergeben) macht folgendes:

1. in der Zelle A1 muß der Umrechnungskurs für DEM-EUR stehen
2. die DEM-Beträge stehen in der Spalte C
3. die Euro-Werte werden in die Spalte D eingetragen
4. die Werte werden mit dem EUR-Symbol formatiert

Range("D1").Select
' markiert D1

ActiveCell.FormulaR1C1 = "=RC[-1]*R1C1"
' gibt eine Formel für diese Zelle an, und zwar soll der Wert aus Zelle C1 (RC[-1]) mit dem Wert aus Zelle $A$1 (R1C1 - row 1 column 1) multipliziert werden - der erste Wert ist ein relativer Bezug, der 2. ist absolut (in Excel dargestellt mit dem $-Zeichen)

Range("D1").Select
wert = InputBox("Ausfüllen bis zu welcher Zeile?")
If wert = "" Then
MsgBox "Kein Wert eingegeben! Abbruch!"
Exit Sub
Else
End If
'Abfrage, bis zu welcher Zeile ausgefüllt werden soll - wenn der Benutzer nichts eingibt, erfolgt eine Fehlermeldung und die Prozedur wird abgebrochen - diese Abfrage könntest du auch für die 1. Zeile, ab der ausgefüllt werden soll, eingeben ...

Selection.AutoFill Destination:=Range("D1 :D" & wert), Type:=xlFillDefault
Range("D1 :D" & wert).Select
Columns("D :D").Select
' nun wird der markierte Bereich mit der Formel versehen

Selection.NumberFormat = _
"_-[$€-2] * #,##0.00_-;-[$€-2] * #,##0.00_-;_-[$€-2] * ""-""??_-;_-@_-"
ActiveWindow.ScrollRow = 1
' jetzt noch das EUR-Zeichen und fertig ...

das ganze läßt sich beliebig ändern, auch ist für die Ausführung irrelevant, wo sich der Zeiger gerade befindet ...

das einzige, was du machen mußt, ist den code deinen Bedürfnissen anzupassen ...
das Makro läßt sich dann übrigens auch in das autostart-Blatt einfügen, sodaß es immer verfügbar ist (in jeder Tabelle/Mappe) ...

wenn's noch Fragen gibt, dann meld dich!


[Dieser Beitrag wurde von Chrisu am 15. Oktober 2000 editiert.]
 
  • *** EXCEL - Problem *** Beitrag #6
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Hi,

da ich normalerweise in Delphi und Java programmiere, versuche ich immer durch den Quelltext durchzusteigen bevor ich ihn eintippe. Ich habe aber probleme mit dieser Zeile:
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>"_-[$€-2] * #,##0.00_-;-[$€-2] * #,##0.00_-;_-[$€-2] * ""-""??_-;_-@_-"
[/quote]

könntest Du bitte kurz erläutern.

THX !

CU
 
  • *** EXCEL - Problem *** Beitrag #7
Chrisu

Chrisu

Bekanntes Mitglied
Dabei seit
30.11.1999
Beiträge
1.364
Reaktionspunkte
0
Ort
EnterpriZe Elite
man, das Teil hier geht aber heute wieder sch*** langsam ...

also, diese Zeile macht nix weiteres, alle die Formatierung für alle auftretenden Zahlen in der Spalte zu spezifizieren, wobei [S€-2] bedeutet, daß das €-Zeichen vor der Zahl steht ([$€-1] heißt, das € steht nach der Zahl) - der String im Detail:

die Formatierungsangabe besteht aus 4 einzelnen Strings, die durch das ; getrennt werden - sie stellen zugleich alle auftretenden Formen der Zahlen in der Spalte dar ... es wird keine Möglichkeit ausgeschlossen

die Zeile definiert, daß bei positiven Zahlen der Wert so dargestellt werden soll, daß nach dem € die Tausender-Stellen durch einen Punkt, die Kommastellen durch einen Beistrich ersichtlich gemacht werden sollen - bei negativen Zahlen soll das Minus vor dem €-Zeichen erscheinen (2. String) - der letzte String befaßt sich mit der Möglichkeit, daß ein Text auftritt, es wird hier angegeben wie mit einem Text umgegangen werden soll (in unserem Beispiel ist jedoch die Möglichkeit ausgeschlossen, daß in dieser Spalte ein Text steht (außer Formatierungen), da sich die Werte dieser Spalte durch eine Formel ergeben (zB c1*d1) - wenn nun C1 einen Text enthält, dann kann dieses Formel nicht aufgelöst werden, es erscheint in der Zielzelle die Angabe #Wert!)

am einfachste ist die Generierung dieser Zeile, indem man sich ein Makro aufzeichnet und dann nachschaut, wie solche Formatierungen im Code dargestellt werden (was auch in diesem Beispiel geschah) - allerdings kannst du diese Zeile auch weglassen, wenn du in der Spaltenüberschrift angibst, daß es sich um EURO handelt ...)
 
  • *** EXCEL - Problem *** Beitrag #8
FerFemNemBem

FerFemNemBem

Moderator
Teammitglied
Dabei seit
11.09.1999
Beiträge
4.494
Reaktionspunkte
0
Hi,

erstmal ein ganz dickes DANKESCHÖN !!! an alle Beteiligten.
Der Code von Chrisu hat mich fast direkt an's Ziel gebracht. Hier die momentane Version:

Code:
Sub EuroRechner()

 Range("G4").Select
  ActiveCell.Formula = "=(F4)/$D$1"
  
 Wert = InputBox("Ausfüllen bis zu welcher Zeile?")
  If Wert = "" Then
   MsgBox "Kein Wert eingegeben! Abbruch!"
   Exit Sub
    Else
  End If
 
 Range("G4").Select
 Selection.AutoFill Destination:=Range("G4:G" & Wert), Type:=xlFillDefault
 Range("G4:G" & Wert).Select

Selection.NumberFormat = _
"_-[$€-2] * #,##0.00_-;-[$€-2] * #,##0.00_-;_-[$€-2] * ""-""??_-;_-@_-"
ActiveWindow.ScrollRow = 1
Range("G4").Select

End Sub

Das mit dem Macro aufzeichnen und nachsehen was aufgezeichnet wurde finde ich klasse! Hierbei lernt man eine Menge. Da ich jetzt noch kleinere Problemchen habe (z.B. gibt es zwischendrin auch Leerzeilen, die natürlich nicht berechnet werden sollen usw.)werde ich mich wohl zwangsweise auch etwas mit diesem VBA beschäftigen müssen.

...wer weiss, wofür es gut ist...

CU & Danke schön !
 
  • *** EXCEL - Problem *** Beitrag #9
Chrisu

Chrisu

Bekanntes Mitglied
Dabei seit
30.11.1999
Beiträge
1.364
Reaktionspunkte
0
Ort
EnterpriZe Elite
naja, um Herauszufinden, ob eine Zelle leer ist, verwendest du einfach die Funktion ISTLEER (im Sheet)
bsp:
=istleer(A2)
wenn dann A2 leer ist, zeigt die Funktion WAHR an, ansonsten FALSCH

leer bedeutet im Code Null oder von mir aus auch "" - wie die Zeile im Code aussieht erfährst du am besten wieder via Aufzeichnen ...
 
Thema:

*** EXCEL - Problem ***

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.180
Beiträge
1.579.174
Mitglieder
55.879
Neuestes Mitglied
stonetreck
Oben