Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
856to860
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
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2x Makro???

2x Makro?
22.03.2007 13:22:00
Michael
Hallo,
habe ein Problem mit dem Makrorecorder, der eine bestimmte Aktion einfach nicht aufzeichnen will.
Und zwar möchte ich eine Spalte, welche als Text formartiert ist und in der Zahlen stehen als Zahl formatieren und zentrieren.Ich starte den Recorder, markiere die Spalte dann Eigenschaften und als Zahl ohne Nachkommastellen formatiert und zentriert.Wird auch alles gemacht.Soweit so gut.In den Zellen ist jetzt oben links noch ein kleines Dreieck.Links neben der Zelle erscheint ein Ausrufungszeichen mit der Meldung "In eine Zahl umwandeln". Der Makrorecorder ist immer noch an. Ich klicke als auch noch auf das Ausrufungszeichen und lasse die ganze Spalte in Zahl umwandeln. Die Berechnung dauert dann ein wenig und ich beende den Recorder. Wenn ich das Makro dann aber in einer weiteren Spalte starte, wird nur die Spalte markiert und zentriert aber die Spalte wird nicht in eine Zahl umgewandelt, die Dreiecke bleiben bestehen ebenso wie das Ausrufungszeichen.Die Aktion mit dem Ausrufungszeichen wird also vom Recorder nicht aufgezeichnet.
Woran kann das liegen? Weiß jemand Rat?Danke.
Mein 2tes Problem..ich habe eine Liste mit ca.5000 Zeilen.In Spalte A steht eine Zahl, die durch anklicken (zb Hyperlink) auf ein weiteres Tabellenblatt verweist und dort in Spalte B gesucht werden soll. Wird diese Zahl in Spalte B gefunden, soll dort die ganze Zeile farblich markiert werden. Ist so etwas machbar? Und wenn ja, kann man diesen Hyperlink oder Makro auch kopieren, da ich dies ja für alle 5000 Zahlen machen muss.
Ich danke euch.
Gruss..Mike

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Textzahlen zu Zahlen per Makro
22.03.2007 14:19:00
Beate
Hallo Mike,
zu deinem ersten Problem: Das Makro wandelt Textzahlen zu echten Zahlen in Spalte A und zentriert die Werte:
Sub FormatBereinigen()
'von Uwe Küstner
' aus http://www.online-excel.de/fom/fo_read.php?f=1&bzh=944&h=924#a123x
Dim arr As Variant
Dim rngB As Range
Set rngB = Columns("A:A")
arr = rngB
rngB.Clear
rngB = arr
rngB.HorizontalAlignment = xlCenter
End Sub


Gruß,
Beate
Anzeige
AW: Textzahlen zu Zahlen per Makro
22.03.2007 14:46:00
Michael
Hallo Beate,
danke für die schnelle Antwort. Klappt soweit auch ganz gut, allerdings wird die ganze Formatierung der Spalte "über den Haufen" geworfen. Die Gitternetzlinien sind weg und die Schrift wird vergrößert. Kann man das verhindern? Und kann man den Makro auch irgendwie dynamisch anlegen bzw verändern, da ich mehrere Spalten habe, wo ich das durchführen muss?
Danke.
Gruss..Mike
AW: Textzahlen zu Zahlen per Makro
22.03.2007 20:02:20
Beate
Hallo Michael,
wenn du es so abänderst, behält der Bereich die sonstige Formatierung:
Sub FormatBereinigen()
Dim arr As Variant
Dim rngB As Range
Set rngB = Range("a1").CurrentRegion
arr = rngB
rngB.ClearContents
rngB.NumberFormat = "General"
rngB = arr
End Sub



Bezüglich deiner dynamischen Bereiche müsstest du näher erklären, woraus die bestehen können.
Gruß,
Beate
Anzeige
Zelle finden und Zeile markieren
22.03.2007 23:46:19
Beate
Hallo Michael,
hier noch eine Lösung zu deiner zweiten Frage.
Das Makro gehört ins Codefenster der Tabelle1. Doppelclick auf einen Wert in Spalte A aktiviert Tabelle2 und sucht dort in Spalte B den Treffer und färbt die Zeile rot:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim rng As Range
If Target.Column = 1 Then
    Application.ScreenUpdating = False
    Set rng = Sheets("Tabelle2").Range("$B:$B").Find(What:=Target.Cells, _
        LookIn:=xlValues, LookAt:=xlWhole)
    If rng Is Nothing Then
        MsgBox "Wert wurde nicht gefunden."
    Else
        Application.Goto rng, True
        ActiveCell.EntireRow.Interior.ColorIndex = 3
    End If
End If
End Sub


Hier die Beispieldatei: https://www.herber.de/bbs/user/41308.xls
Hyperlinks brauchst du nicht einfügen.
Gruß,
Beate
Anzeige
AW: Zelle finden und Zeile markieren
23.03.2007 11:07:07
Michael
Hallo Beate,
habe den 1ten Makro deinen Anweisungen nach angepasst. Klappt auch ganz gut in der entsprechenden Tabelle. Ich habe ihn jetzt nur in die Personal.xls in ein neues Modul kopiert, da die Tabelle jede Woche neu aus einer Oraceldatenbank exportiert wird und dann die Makros natürlich immer weg sind.In der Personal.xls funktioniert der Makro auch, es kommt aber immer ein Laufzeitfehler und er bleibt bei rngB = arr stehen.Obwohl die Tabelle richtig formatiert wurde.
Der 2te Makro funktioniert einwandfrei:-) Dazu ist mir dann noch was engefallen, ob man das wohl umsetzen kann. Und zwar, wenn ich eine Zahl in Tabelle 1 doppelt klicke und diese auch in Tabelle 2 gefunden wird, das dann bei der Zahl in Tabelle 1 eine Messagebox aufgeht, mit einigen der Werte die in der Zeile der gefunden Zahl in Tabelle 2 angezeigt werden.
Gruss...Mike
Anzeige
Vorlagendatei
23.03.2007 11:36:00
Beate
Hallo Michael,
ich kann dein Problem mit der Nutzung aus der personl.xls nachvollziehen, aber nicht lösen.
Vorschlag: Lege eine Mustervorlagendatei (mit der Endung *.xlt) an, die die nötigen Makros enthält. Wöchentlich nutzt du dann diese Vorlagendatei und speicherst sie unter dem jeweils gewünschten Namen ab. Es sind dann sozusagen jeweils Kopien der *.xlt-Datei, die die Endung *.xls automatisch dann erhalten. Und die Makros sind dann in der jeweiligen Datei.
Gruß,
Beate
AW: Vorlagendatei
23.03.2007 13:14:08
Michael
Hallo Beate,
das klappt leider nicht so richtig. Es kommt zwar eine andere Fehlermeldung (ein Rotes X und daneben steht 400) aber das Ergebis ist das Gleiche, als wenn ich den Makro aus Personal.xls ausführe. Er sortiert mir nur bis zur ID 5800 und die restlichen 2400 werden einfach gelöscht.
Gruss..Mike
Anzeige
AW: Vorlagendatei
23.03.2007 13:37:00
Beate
Hallo Michael,
hast du an der "Bruchstelle" vielleicht eine Leerzelle im Bereich, dann gehört das darunter nicht mehr zur CurrentRegion. (Guckst Du: CurrentRegion -Kontrolle über Listen )
Dann tausche das Makro aus gegen dieses:
Sub FormatBereinigen()
Dim arr As Variant
Dim rngB As Range
Set rngB = Columns("A:A")
arr = rngB
rngB.ClearContents
rngB.NumberFormat = "General"
rngB = arr
End Sub

Gruß,
Beate
Anzeige
AW: Vorlagendatei
23.03.2007 14:07:42
Michael
Hi Beate, nein war keine Leerzelle dazwischen. Wenn ich jetzt Set rngB = Columns("A:A") einsetzte, funktioniert es. Kann ich auch mehrer Spalten gleichzeitig ändern lassen (A,D,Q,R,T,U)? Hab das versucht untereinander zu schreiben aber das Makro führt nur den ersten Set Befehl aus (also A:A).
Gruss..Mike
AW: Vorlagendatei
23.03.2007 16:55:00
Beate
Hallo Mike,
die gesuchte Lösung fiel mir auch nicht ein, deshalb habe ich mal selbst danach gefragt, siehe:
http://www.online-excel.de/fom/fo_read.php?f=1&bzh=0&h=17946&ao=1#a123x
Demnach kannst du deinen Code so anpassen:
Sub FormatBereinigen()
' Schleifenvariante von Ransi
' aus http://www.online-excel.de/fom/fo_read.php?f=1&bzh=0&h=17946&ao=1#a123x
Dim arr As Variant
Dim rngB As Range
Dim area As Range
Set rngB = Range("A:A, D:D, Q:Q, R:R, T:T, U:U")
For Each area In rngB.Areas
    arr = area
    area.ClearContents
    area.NumberFormat = "General"
    area = arr
    Erase arr
Next
End Sub


Du kannst diesen Thread ja im Auge halten, ob da noch eine schleifenfreie Lösung eingeht.
Gruß,
Beate
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige