Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1268to1272
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Spaltenwerte ändern mit For Each

Spaltenwerte ändern mit For Each
Peter
Hallo zusammen
Ich bin zur Zeit daran, einen Währungsumrechner zu basteln. In Abhängigkeit der Währung in Zelle L4 z. Bsp. EUR od. CHF sollen alle Zellen (Q6:q759) im Tabellenblatt3 durchlaufen werden. Ist der Eintrag in L4 EUR, dann werden die Beträge in Bereich (Q6:q759) durch einen Kurs geteilt. Wenn der Wert in L4 ungleich EUR, dann werden die Beträge in Bereich (Q6:q759) mit einem Kurs multipliziert. Das Ganze habe ich mit folgendem Code gelöst:
Sub Waehrung()
Dim zelle As Range
Dim bereich As Range
Dim wf As Range
Dim kurs As Range
Set bereich = Tabelle3.Range("Q6:q759")
Set wf = Tabelle5.Range("L4")
Set kurs = Tabelle6.Range("g4")
For Each zelle In bereich
If zelle.Value > 0 And wf.Value = "EUR" Then
zelle.Value = zelle.Value / kurs
ElseIf zelle.Value > 0 And wf.Value  "EUR" Then
zelle.Value = zelle.Value * kurs
End If
Next zelle
End Sub
Das Ganze funktioniert eigentlich auch genau, so wie ich es mir vorstelle. Wenn das Makro aber durchgelaufen ist und seinen Job fehlerfrei erledigt hat, kommt jedes Mal die Fehlermeldung Laufzeitfehler 13, Typen unverträglich.
Irgendwo liegt noch ein kleiner Fehler beim Zuweisen der Datentypen.
Habt Ihr ev. eine Idee?
Vielen Dank.
Gruss
Peter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Spaltenwerte ändern mit For Each
18.07.2012 12:21:49
Matze,Matthias
Hallo Peter,
teste mal, ...bittte noch ANPASSEN
Sub Waehrung()
Dim zelle As Range
Dim bereich As Range
Dim wf As Range
Dim kurs As Range
Set bereich = Tabelle3.Range("Q6:q759")
Set wf = Tabelle5.Range("L4")
Set kurs = Tabelle6.Range("g4")
with Tabelle? ' ANPASSEN wo die Values sind
For Each zelle In bereich
If zelle.Value > 0 And wf.Value = "EUR" Then
zelle.Value = zelle.Value / kurs
Else
If zelle.Value > 0 And wf.Value  "EUR" Then
zelle.Value = zelle.Value * kurs
End If
Next zelle
end with
End Sub

Gruß Matze
AW: Spaltenwerte ändern mit For Each
18.07.2012 12:32:26
Peter
Hallo Matze
Ich kann die Prozedur nicht ausführen. Jetzt kommt immer die Meldung Next ohne For. Aber For steht ja in der Prozedur.
Hast Du eine Idee?
Vielen Dank.
Gruss
Peter
Anzeige
AW: Spaltenwerte ändern mit For Each
18.07.2012 12:50:57
marcl
es fehlt ein end if unter dem end if....
Gruß
marcl
AW: Spaltenwerte ändern mit For Each
18.07.2012 12:58:47
Matze,Matthias
Option Explicit
Sub Waehrung()
Dim zelle As Range
Dim bereich As Range
Dim wf As Range
Dim kurs As Range
Set bereich = Tabelle3.Range("Q6:q759")
Set wf = Tabelle5.Range("L4")
Set kurs = Tabelle6.Range("g4")
For Each zelle In bereich
If zelle.Value > 0 And wf.Value = "EUR" Then
zelle.Value = zelle.Value / kurs
ElseIf zelle.Value > 0 And wf.Value  "EUR" Then
zelle.Value = zelle.Value * kurs
End If
Next zelle
End Sub

Funktioniert bei mir,...ohne Fehlermeldung. https://www.herber.de/bbs/user/81062.xlsm
Matze
Anzeige
AW: Spaltenwerte ändern mit For Each
18.07.2012 13:10:07
Peter
Hallo zusammen
Vielen Dank für Eure Hilfe. Jetzt funktionierts. Die Ursache war, dass einige Zellen im Bereich vordergründig zwar als leer erschienen, hintergründig aber komische Werte beinhaltet haben. Offenbar hatte er mit diesen Zellen ein Problem. Ich habe die Zellen nun nochmals sauber gelöscht und es funktioniert.
Nochmals vielen Dank.
Lieber Gruss
Peter
AW: Spaltenwerte ändern mit For Each
18.07.2012 12:56:47
Peter
Danke.
Jetzt macht er die Berechnungen zwar viel schneller. Der Laufzeitfehler 13, Typen unverträglich erscheint aber leider immer noch.
An was könnte es noch liegen?
Danke & Gruss
Peter
AW: Spaltenwerte ändern mit For Each
18.07.2012 13:01:21
Matze,Matthias
Hallo Peter,
was steht genau in Q6:Q759 nur Werte oder 123 EUR oder ne Formel ?
Ist es so wie in der Mustertabele von mir?
Matze
Anzeige
AW: Spaltenwerte ändern mit For Each
18.07.2012 14:34:27
Peter
Hallo Matze
Nur noch eine letzte Frage....
Die Prozedur läuft jetzt ca. 5 Min. um bei ca. 800 Datensätzen diese Berechnungen zu machen. Vorher hat sie dies in 2 Sek. gemacht. An den Einstellungen habe ich nichts geändert.
Was meinst Du?
Danke.
Gruss
Peter
AW: Spaltenwerte ändern mit For Each
18.07.2012 19:26:56
Matze,Matthias
Hallo Peter,
du hattest den Beitrag nicht offen daher hab ich das erst spät gesehen.
versuch das nochmal
Sub Waehrung()
Dim zelle As Range
Dim bereich As Range
Dim wf As Range
Dim kurs As Range
With Application
.ScreenUpdating = False
.EnableEvents = False
Set bereich = Tabelle3.Range("Q6:q759")
Set wf = Tabelle5.Range("L4")
Set kurs = Tabelle6.Range("g4")
For Each zelle In bereich
If zelle.Value > 0 And wf.Value = "EUR" Then
zelle.Value = zelle.Value / kurs
ElseIf zelle.Value > 0 And wf.Value  "EUR" Then
zelle.Value = zelle.Value * kurs
End If
Next zelle
.ScreenUpdating = True
.EnableEvents = True
End With
End Sub

Anzeige

80 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige