Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1232to1236
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

Makro zum Anpassen und kopieren von Zellen

Makro zum Anpassen und kopieren von Zellen
Zellen
Hallo alle zusammen,
könnt ihr mir bitte bei einem Makro helfen das folgendes macht?
Die folgenden 4 Punkte sollen sich auf alle Tabellen in der Arbeitsmappe beziehen.
1. Schriftfarbe schwarz
2. Schriftgröße 11
3. Schriftart Calibri
4. Text soll nicht unterstrichen sein.
-----------------------------------------------------------------------------------------------
Die folgenden beiden Punkte sollen sich nur auf die Tabelle "alle" beziehen.
5. Ist ein Text in Spalte B fett geschrieben, soll auch der Text in den Spalten A und C-G derselben Zeile fettgeschrieben sein.
6. Ist ein Text in Spalte B NICHT fett geschrieben, soll auch der Text in den Spalten A und C-G derselben Zeile NICHT fettgeschrieben sein.
-----------------------------------------------------------------------------------------------
Es gibt auch noch eine Tabelle "Teil".
7. Die Zeilen, die nach Ausführen von Punkt 5 und 6 fett sind, sollen in die Tabelle "Teil" kopiert werden und damit das Makro erneut ausführbar ist, dann Duplikate von Zeilen entfernt werden.
-----------------------------------------------------------------------------------------------
Zu den Hyperlinks:
8. Jede Zelle in Spalte B und E, sowohl in Tabelle Alle als auch in Tabelle Teil soll einen Hyperlink beinhalten. Ziel des Hyperlinks soll identisch mit dem Text sein, der in der Zelle steht.
-----------------------------------------------------------------------------------------------
Zu guter letzt:
9. Die Tabelle Alle soll in der Reihenfolge Spalte F aufsteigend, dann Spalte G aufsteigend, dann Spalte E aufsteigend sortiert werden.
10. Die Tabelle Teil soll in der Reihenfolge Spalte D aufsteigend, dann Spalte E aufsteigend, dann Spalte B aufsteigend sortiert werden.
Auch wenns sicherlich viel Arbeit ist, vielen Dank für die Unterstützung
Ein schönes Wochenende wünscht Christian
AW: Makro zum Anpassen und kopieren von Zellen
16.10.2011 10:55:53
Zellen
Hallo Christian,
in Schritt 7 ist mir unklar, was du mit Duplikate meinst.
Ich hab mal angenommen, dass damit alle Zeilen gemeint sind, die von "alle" nach "Teil" kopiert wurden. Also die Zeilen, die in Spalte B vor der Makroausführung "Fett" waren.
Gruß
Franz
Textfile mit Code: https://www.herber.de/bbs/user/77033.txt
AW: Makro zum Anpassen und kopieren von Zellen
16.10.2011 11:22:04
Zellen
Hallo Franz,
erstmal beantworte ich deine Frage zu den Duplikaten, deine Tabelle muss ich mir mal in Ruhe anschaun, wenn ich was mehr Zeit hab, bekomme gleich Besuch.
Man hat in Excel 2010 im Menüband Daten - Datentools die Möglichkeit "Duplikate entfernen", woraufhin man dann die betroffenen Spalten auswählen und auf Duplikate überprüfen lassen kann, das war damit gemeint.
Ziel des Ganzen ist, dass die zu kopierenden Zeilen zusätzlich zu den bereits bestehenden in Tabelle "Teil" erscheinen sollen. Somit würden die bereits bei vorherigen Ausführungen des Makros fett geschriebenen Zeilen erneut kopiert und Duplikate in der Tabelle "Teil" entstehen.
Verstehst du was ich meine?
Gruß
Christian
Anzeige
AW: Makro zum Anpassen und kopieren von Zellen
16.10.2011 12:11:41
Zellen
Hallo Franz,
zuerstmal vielen vielen Dank für deine Mühe.
Manchmal mache ich es komplizierter als es ist, sehe manchmal einfach den Wald vor lauter Bäumen nicht.
Bei Punkt 7 reicht es völlig aus, wenn erst der komplette Inhalt der Tabelle "Teil" gelöscht wird und dann die fettgeschriebenen Zeilen reinkopiert werden, vergess das mit den Duplikaten, viel zu kompliziert.
Gruß
Christian
AW: Makro zum Anpassen und kopieren von Zellen
16.10.2011 12:59:17
Zellen
Hallo Franz,
habe jetzt mal ein wenig rumgetestet. So leid es mir tut, du hast dir sehr sehr viel Mühe gegeben, aber der ein oder andere Punkt passt noch nicht.
1. Die Zeilen, die kopiert werden sollen, werden nicht kopiert sondern ausgeschnitten. Sie sollen aber in beiden Tabellenblättern vorhanden sein.
2. Die Tabelle alle wird nicht sortiert (kann dies mit Groß- und Kleinschreibung zu tun haben? Die Tabellen schreiben sich alle und Teil).
3. Die Tabelle Teil wird zwar sortiert aber falsch. Diese soll eigentlich was Spalte D anbelangt nach Alter aufsteigend sortiert sein, jetzt steht aber das am weitesten zurückliegende Datum oben und ist damit nach meinem Verständnis nach Alter absteigend sortiert.
4. Aus für mich unerklärlichem Grund bleibt die erste Zeile der Tabelle Teil leer.
5. Wie vorhin schonmal angesprochen wäre es sinnvoller, wenn bevor die Zeilen kopiert werden, der Inhalt der Tabelle Teil komplett gelöscht wird.
6. Das Erstellen der Hyperlinks ändert die Formatierung, die in den Punkten 1-4 gemacht wurde.
7. noch was zusätzliches, wäre es möglich, dass in allen Tabellen außer alle und Teil das fettgeschriebene nach Ausführen des Makros normal geschrieben ist?
Gruß und vielen Dank
Christian
Anzeige
AW: Makro zum Anpassen und kopieren von Zellen
16.10.2011 13:07:05
Zellen
den Fehler für Punkt 2 hab ich gefunden, die Tabelle alle wird jetzt sortiert.
AW: Makro zum Anpassen und kopieren von Zellen
17.10.2011 03:40:28
Zellen
Hallo Christian,
ich hab das Makro entsprechend den zusätzlichen Infos angepasst. Ich hoffe, dass es jetzt wunschgemäß funktioniert.
1. Die Zeilen, die kopiert werden sollen, werden nicht kopiert sondern ausgeschnitten. Sie sollen aber in beiden Tabellenblättern vorhanden sein.
Fette Zeillen in "alle" werden nicht mehr gelöscht.
2. Die Tabelle alle wird nicht sortiert (kann dies mit Groß- und Kleinschreibung zu tun haben? Die Tabellen schreiben sich alle und Teil).
Hat sich ja wohl schon erledigt. Groß- und Kleinschreibung ist bei verschiedenen VBA-Funktionen relevant.
3. Die Tabelle Teil wird zwar sortiert aber falsch. Diese soll eigentlich was Spalte D anbelangt nach Alter aufsteigend sortiert sein, jetzt steht aber das am weitesten zurückliegende Datum oben und ist damit nach meinem Verständnis nach Alter absteigend sortiert.
Ein Datum, das aufsteigend sortiert wird beginnt beim ältesten Datum. In Excel2007/2010 gibt es die manuellen Sortier-Optionen "nach Alter aufsteigend bzw. absteigend". Unter VBA kann man aber nur auf-/absteigend sortieren. Um eine Spalte mit Datumswerten nach "Alter aufsteigend" zu sortieren, muss diese Spalte dann absteigend sortiert werden.
4. Aus für mich unerklärlichem Grund bleibt die erste Zeile der Tabelle Teil leer.

Das hängt mit der Art zusammen, wie die letzte ausgefüllte Zeile im Blatt "Teil" ermittelt wird. Der Befehl funktioniert wie die Tastenkombination Strg+Pfeil_Oben. D.h. es wird oberhalb der vorgegebenen Zelle die erste Zelle mit Inhalt ermittelt/angesteuert. Ist die gesamte Spalte leer, dann wird trotzdem Zeile 1 als Ergebnis ausgegeben. Beim Kopieren wird dann der Zeilenzähler hochgezählt und kopiert. Dadurch bleibt Zeile 1 leer.
Ich hab den Startwert für den Zeilenzähler jetzt auf 0 gesetzt.
5. Wie vorhin schonmal angesprochen wäre es sinnvoller, wenn bevor die Zeilen kopiert werden, der Inhalt der Tabelle Teil komplett gelöscht wird.
Ist jetzt im Makro integirert.
6. Das Erstellen der Hyperlinks ändert die Formatierung, die in den Punkten 1-4 gemacht wurde.

Hier läuft im Makro die gleiche automatische Änderung des Formats ab wie beim manuellen Einfügen von Hyperlinks. Für Font-Name und -Größe der Schrift wird die Formatvorlage "Hyperlink" angpasst. Farbe, Fett, und Unterstreichung werden individuell nach dem Einfügen der Hyperlinks zurückgesetzt. Damit sich die vielen identischen Zeilen im Code nicht mehrfach wiederholen, werden die Hyperlinks jetzt in der Sub-Routine "MakeHyperlink" erstellt
7. noch was zusätzliches, wäre es möglich, dass in allen Tabellen außer alle und Teil das fettgeschriebene nach Ausführen des Makros normal geschrieben ist?

Diese Anpassung der Formatierung hab ich in die 1. Formatierungsschleife integriert, wobei eine Prüfung auf die Blattnamen erfolgt (Groß-/Kleinschreibung beachten!!!).
Gruß
Franz
Datei mit Code: https://www.herber.de/bbs/user/77042.txt
Anzeige
AW: Makro zum Anpassen und kopieren von Zellen
18.10.2011 10:18:31
Zellen
Hallo Franz,
so habe jetzt mal weitergetestet. Die Formatierung der Punkte 1-4 macht er noch, auch den Punkt 7 meiner zweiten Auflistung dass das fettgeschriebene aus den anderen Tabellen heraus soll. Jedoch dann meldet er Index außerhalb des gültigen Bereichs. Mit dem Thema welche Zeilen fett und nicht fett sein sollen, beginnt er erst gar nicht
Außerdem tritt noch ein Problem auf. Solang ich nur die ersten 100 Zeilen nehme, lief dein erstes Makro durch, wenn ich das ganze Tabellenblatt "alle" nehme, was ca. 40000 Zeilen hat, hängt sich Excel auf. Lässt sich das Thema mit den fetten Zeilen, Zeilen kopieren und Hyperlinks auch in 100er Schritten machen?
Ich stelle mir das so vor,
1. wird die Formatierung gemacht die die gesamte Arbeitsmappe betrifft
2. wird der Inhalt der Tabelle Teil gelöscht
3. wird in der Tabelle "alle" in den ersten 100 Zeilen die Hyperlinks erstellt.
4. werden die ersten hundert Zeilen auf soll fett oder nicht fett geschrieben sein überprüft.
5. sollen die fetten der ersten 100 Zeilen kopiert werden.
6. soll eine Meldung "Fertig" erscheinen
7. Auf Bestätigung mit z.B. der Enter Taste sollen die Punkte 3-5 mit den Zeilen 101-200 ausgeführt werden usw. bis das Tabellenende erreicht ist. (die kopierten Zeilen natürlich in der Tabelle Teil aneinandergereiht, ohne den Inhalt nochmal zu löschen).
8. Dann erst sollen die beiden Tabellen sortiert werden.
Damit hätten wir auch Rechenleistung gespart, weil die Hyperlinks ja schon mitkopiert werden in die Tabelle Teil.
Gruß
Christian
Anzeige
AW: Makro zum Anpassen und kopieren von Zellen
19.10.2011 08:18:42
Zellen
Hallo Christian,
könntest bezüglich der Index-Fehlermeldung bitte etwas genauere Angaben mach. In welcher Zeile tritt der Fehler auf?
Eine Datei mit 80000 und mehr Hyperlinks zuzupflastern macht doch auch irgendwie keinen Sinn.
Möglicher Weise gibt es hier auch ein Limit in Excel für die Anzahl der Hyperlinks, so dass Excel aussteigt/hängenbleibt.
Was für Art Hyperlinks sind dies denn?
Möglicherweise ist es sinnvoller nach Doppelklick auf eine Zelle den entsprechenden Link auszuführen, denn nach aus willst du die Hyperlinks ja garnicht hervorheben.
Ob es funktioniert, wenn das Makro in Zeilen von 100 Schritten abgarbeitet wird, weiss ich nicht.
Für mich ist es ja schon ein Greul, dass du die Formatierung Fett/nicht Fett als Kriterium benutzt, um Datensätz zum Kopieren auszuwählen. Wäre es nicht einfacher, in einer Zusatzspalte ein "X" einzutragen?
Einen solchen Eintrag könnte man auch völlig anders abarbeiten, um die Zeilen in ein anderes Blatt zu kopieren.
Gruß
Franz
Anzeige
AW: Makro zum Anpassen und kopieren von Zellen
19.10.2011 08:37:07
Zellen
Hallo Franz, hinter der Sache mit den Hyperlinks steckte was anderes.
Ich habe ein anderes Makro, welches in den Bereichen, die ich vorher festlege die Hyperlinks öffnet. Wenn jedoch kein Link besteht, gibts nen Fehler.
ABer ich hab trotzdem nochmal über die Sinnhaftigkeit nachgedacht, eigentlich reicht es wenn die Spalte B der Tabelle Teil die Links enthält, das wärenn dann noch geschätzt 3200 (hab nachgeschaut 65536 ist die Grenze für Links in einer Arbeitsmappe).
Weshalb ich das über die fetten Zeilen mache, die fetten Zeilen sollen ja bewusst einen Teil der Datensätze hervorheben, somit dachte ich dass durch eine Kennzeichnung durch ein X nur zusätzliche Rechenleistung entsteht.
Aber wenn du denkst, mit einem X wäre das ganze einfacher, dann schreib bitte ins Makro dass in Spalte H ein X erscheinen soll, soweit A-G der Zeile fett ist.
Gruß
Christian
Anzeige
AW: Makro zum Anpassen und kopieren von Zellen
19.10.2011 21:39:56
Zellen
Hallo Christian,
ich hab das Makro mal so umgestrickt, dass in Spalte H temporär ein "x" eingetragen wird, um die zu kopierenden Zeilen zu einem Zeilenblock zu sortieren.
Das Makro ist so etwas schneller, als wenn jede "fette" Zeile einzelnen kopiert wird.
Gruß
Franz
https://www.herber.de/bbs/user/77103.txt
AW: Makro zum Anpassen und kopieren von Zellen
19.10.2011 21:50:41
Zellen
Hallo Franz,
machen wirs doch einfach ganz kurz, auch wenn dann viel Arbeit umsonst war, ich weiß, machen wirs doch so, dass nur noch in den "fetten" Zeilen Hyperlinks in Spalte B erstellt und das X dauerhaft in Spalte H geschrieben wird. Dann kann ich die Tabelle nach X sortieren und alles andere händig machen.
Gruß
Christian
Anzeige
AW: Makro zum Anpassen und kopieren von Zellen
21.10.2011 07:50:03
Zellen
Hallo Christian,
ich kann jetzt zwar nicht nachvolziehen, warum du aufgibts, die Aktionen komplett zu automatisieren. Aber sei es drum.
Gruß
Franz

Sub Markieren_Fett_Hyperlink()
'Alle Zeilen mit Fett-Formatierung in Spalte B in Spalte H mit "x" markieren und Hyperlink  _
einfügen
Dim objWb As Workbook, objWks As Worksheet
Dim lngZeile As Long, lngZeileL As Long
Set objWb = ActiveWorkbook
Application.ScreenUpdating = False
Set objWks = objWb.Worksheets("alle")
With objWks
'vorhandene markierungen in Spalte H löschen
.Range(.Cells(1, 8), .Cells(.Rows.Count, 8).End(xlUp)).ClearContents
lngZeileL = .Cells(.Rows.Count, 2).End(xlUp).Row
For lngZeile = 1 To lngZeileL
If .Cells(lngZeile, 2).Font.Bold = True Then
.Cells(lngZeile, 8) = "x"
Call MakeHyperlink(.Cells(lngZeile, 2))
End If
Next lngZeile
'    .Cells(1, 8) = "Fett"     'Spaltentitel Spalte H
End With
Application.ScreenUpdating = True
End Sub
Private Sub MakeHyperlink(objZelle As Range)
Dim boolBold As Boolean
With objZelle
boolBold = .Font.Bold 'Fett-Formatierung der Zelle merken
If .Hyperlinks.Count > 0 Then .Hyperlinks(1).Delete
.Parent.Hyperlinks.Add anchor:=objZelle, Address:=.Text
'automatische Hyperlink-Formatierung rückgängig machen
With .Font
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
.Bold = boolBold
End With
End With
End Sub

Anzeige
AW: Makro zum Anpassen und kopieren von Zellen
21.10.2011 16:40:57
Zellen
naja weil Excel abstürzt statt das Makro vollständig auszuführen, die Datenmengen scheinen doch zu groß zu sein

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige