Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
668to672
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
668to672
668to672
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
mehrere Tabellen und Zellen markieren
22.09.2005 14:30:51
Kira
Hallo,
ich habe folgenden Code, mit dem ich alle Zahlwerte in der Mappe umrechnen lasse (Die Umrechnung erfolgt über eine Textboxeingabe, deren Wert in eine Zelle übergeben wird, z.b. H1=2,15):

Sub Umrechnen()
Range("H1").Value = TextBox1.Text
Worksheets("Tabelle1).Range("A1:N100").Select
Dim Zelle As Range
For Each Zelle In Selection
If Zelle.HasFormula = True Or IsNumeric(Zelle) = False Or IsEmpty(Zelle) Or IsDate(Zelle) Then
Else
Zelle = Zelle * H1
End If
If IsEmpty(Zelle) Or IsDate(Zelle) Then
Else
End If
Next Zelle
Worksheets("Tabelle1").Range("A1").Select
End Sub

Bisher war es mir immer nur möglich eine einzige Tabelle mit einem bestimmten Bereich anzusprechen. Wie kann ich aber alle Tabellen z.b. mit dem Bereich A1:N100 markieren und am Ende der Umrechnung die Markierung wieder auflösen?
Markiert habe ich bisher so (allerdings eben nur eine Tabelle):
Worksheets("Tabelle1).Range("A1:N100").Select
Und das ganze wieder aufgelöst mit:
Worksheets("Tabelle1").Range("A1").Select
Ich habe es auch schon mit dem Makrorekorder versucht und alle Tabellen+Bereich markiert, allerdings stimmt dann meine Umrechnung nicht mehr, da er dann jeden Wert so oft mit 2,15 multipliziert wie ich Tabellen angegeben habe.
Gruß
Kira

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: mehrere Tabellen und Zellen markieren
22.09.2005 14:36:22
Alexander
Hallo Kira.
Nochmal zum besseren Verständnis:
Du hast mehrere Arbeitsblaätter, auf denen immer im Bereich "A1:N100" Tabellen zu finden sind, inn denen du alle Werte außer den ausnahmen mit einem Faktor multiplizieren möchtest. Hab ich das so richtig verstanden?
Gruß, Alex.
AW: mehrere Tabellen und Zellen markieren
22.09.2005 14:44:23
Kira
Hallo Alex,
Ja, einfachheitshalber nehme ich den Bereich A1:N100. Würde ich alle Zellen in jeder Tabelle nehmen, würde die Prozedur ein halbes Jahrhundert dauern, bis sie fertig ist.
Sollte eine Tabelle auch einen Wert in N111 haben, würde ich den Bereich für alle Tabellen eben dementsprechend auf A1:N111 anpassen. Die einzelnen Tabellengrößen spielen sozusagen keine Rolle, ich nehm einfach die größte, der Rest wird sowieso durch den Code herausgenommen, da dort ja dann keine Werte stehen.
Soweit hast du das richtig verstanden.
Gruß
Kira
Anzeige
AW: mehrere Tabellen und Zellen markieren
22.09.2005 14:51:23
IngGi
Hallo Kira,
versuch's mal hiermit:

Sub Umrechnen()
Dim ws As Worksheet
Dim Zelle As Range
ThisWorkbook.Worksheets("Tabelle1").Range("H1").Value = TextBox1.Text
For Each ws In ThisWorkbook.Worksheets
For Each Zelle In ws.Range("A1:N100")
If Not Zelle.HasFormula Or IsNumeric(Zelle) Or Not IsEmpty(Zelle) Or Not IsDate(Zelle) Then
Zelle = Zelle * Worksheets("Tabelle1").Range("H1")
End If
Next 'Zelle
Next 'ws
End Sub
Gruß Ingolf
AW: mehrere Tabellen und Zellen markieren
22.09.2005 14:58:40
Kira
Hallo Ingolf,
funkitoniert leider noch nciht ganz. Er schreibt mir jetzt in jede Zelle im Bereich A1:N100 eine 0 hinein, auch wenn die Zelle zuvor leer war. D.h. ich hab jetzt Tabellen voll mit Nullen. Außerdem stimmt die Umrechnung nicht mehr. Gebe ich 2 als Umrechnungskurs an, multipliziert er mit 4 usw. Immerhin werden so aber alle Tabellen inkl. Bereich angesprochen, das ist ja schonmal etwas!
Gruß
Kira
Anzeige
AW: mehrere Tabellen und Zellen markieren
22.09.2005 15:29:57
IngGi
Hallo Kira,
die Bedingungen waren falsch verknüpft. Ich hab das jetzt von "Or" auf "And" geändert. Damit dürfte er jetzt die leeren Zellen nicht mehr ansprechen. Das mit der falschen Korrektur kann ich allerdings nicht nachvollziehen. Hier hab ich mal die Übernahme des Korrekturfaktors aus der Textbox so geändert, dass nun eine Umwandlung von Text in ein Wertformat (Double) stattfindet. Bin aber skeptisch, ob es das bringt. Gegebenenfalls musst du vielleicht mal die Mappe hochladen. Ich steh aber erst morgen wieder zur Verfügung.

Sub Umrechnen()
Dim ws As Worksheet
Dim Zelle As Range
ThisWorkbook.Worksheets("Tabelle1").Range("H1").Value = CDbl(TextBox1.Text)
For Each ws In ThisWorkbook.Worksheets
For Each Zelle In ws.Range("A1:N100")
If Not Zelle.HasFormula And IsNumeric(Zelle) And Not IsEmpty(Zelle) And Not IsDate(Zelle) Then
Zelle = Zelle * Worksheets("Tabelle1").Range("H1")
End If
Next 'Zelle
Next 'ws
End Sub
Gruß Ingolf
Anzeige
Ergänzung
22.09.2005 15:29:01
Kira
Hallo Ingolf,
hab das jetzt soweit angepasst, dass die Nullen weg sind und die Umrechnung stimmt. Das ganze sieht jetzt so aus:

Sub Umrechnen()
Dim ws As Worksheet
Dim Zelle As Range
For Each ws In ThisWorkbook.Worksheets
For Each Zelle In ws.Range("A1:N100")
If Zelle.HasFormula = True Or IsNumeric(Zelle) = False Or IsEmpty(Zelle) = True Or IsDate(Zelle) = True Then
Else
Range("Umrechnung").Value = TextBox1.Text
Zelle = Zelle * Range("Umrechnung")
End If
If IsEmpty(Zelle) Or IsDate(Zelle) Then
Else
End If
Next 'Zelle
Next 'ws
End Sub

Gibt es eine Möglichkeit, dass nur mit Zahlen gefüllte Zellen überprüft werden, ob sie keine Formel und kein Datumsformat enthalten? Und dann eben diese Zellen nur umgerechnet werden. Bin nämlich auf der Suche nach einer Lösung, die weniger Zeit beansprucht, da ich viele Tabellen so prüfen und ändern muss.
Und wie kann ich die Formeln in den Zellen entsprechend anpassen, dass sie mit den geänderten Werten weiterrechnen? Soweit bleiben die Formeln in den Zellen stehen, sie übernehmen aber nicht die neuen Werte sondern lassen z.b. die alten Summenwerte stehen.
Gruß
Kira
Anzeige

271 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige