Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excel Tabellenblatt automatisch erstellen und umbenennen

Frage Entwicklung VB for Applications

Mitglied: Hesperus

Hesperus (Level 1) - Jetzt verbinden

01.08.2010 um 18:44 Uhr, 27630 Aufrufe, 11 Kommentare

Kopieren eines vorhandenen Tabellenblattes in Excel und umbenennen anhand einer Liste

Guten Abend zusammen,

ich habe ein kleines Problem und hoffe Ihr könnt mir helfen.

Ich habe ein Excel Dokument in welchem es bisher zwei Tabellenblätter (1. "Übersicht", 2. "Vorlage") gibt.
Auf dem Blatt "Übersicht" gibt es eine Spalte Namen, welche von J12 bis J186 unterschiedlich lange Namen enthällt.

Ich würde jetzt gern das Blatt Vorlage für jeden Namen 1x kopieren und entsprechend in den Namen umbenennen.

Leider sind meine eigenen Makro Kentnisse dafür zu gering.

Ich würde mich freuen, wenn Ihr einen Vorschlag für mich hättet.

Schon einmal vielen Dank & einen schönen Sonntag noch
Hesperus
Mitglied: bastla
01.08.2010 um 19:27 Uhr
Hallo Hersperus!

Das könnte etwa so gehen:
01.
Sub Erstellen() 
02.
 
03.
For Each NeueTabelle In Worksheets("Übersicht").Range("J12:J186").Value 'alle Zellinhalte von J12 bis J186 durchgehen 
04.
    Sheets("Vorlage").Copy After:=Sheets(Sheets.Count) 'Vorlagetabelle als letztes Blatt in die Arbeitsmappe kopieren 
05.
    Application.DisplayAlerts = False 'Rückfrage (nach dem Löschen einer bestehenden Tabelle) unterdrücken 
06.
    'Versuch, eine gleichnamige Tabelle zu löschen; bei Fehler (= Tabelle ohnehin nicht vorhanden) einfach weitermachen 
07.
    On Error Resume Next: Sheets(NeueTabelle).Delete: On Error GoTo 0 
08.
    Application.DisplayAlerts = True 'Systemeldungen wieder einschalten 
09.
    Sheets(Sheets.Count).Name = NeueTabelle 'neue Tabelle (= letztes Blatt der Mappe) umbenennen 
10.
Next 
11.
 
12.
MsgBox "Fertig." 
13.
End Sub
Bitte beachten: Ev bereits bestehende Tabellen (wenn zB in J12 "KW01" stünde und es bereits eine Tabelle dieses Namens gäbe) werden kommentarlos gelöscht.

Grüße
bastla
Bitte warten ..
Mitglied: Hesperus
01.08.2010 um 20:10 Uhr
Hallo Bastla,

erst einmal vielen Dank für die Hilfe.

Leider funktioniert es so noch nicht. Wenn ich das Markro ausführe, kommt der Laufzeitfehler 9 "Index außerhalb des gültigen Bereichs". Beim Debuggen zeigt er auf die Zeile 3.

Ich hatte zuerst vemutet, dass es an zu langen Namen liegt aber ein test mit aufeinanderfolgenden Nummern bringt den gleichen fehler.
Bitte warten ..
Mitglied: bastla
01.08.2010 um 20:13 Uhr
Hallo Hersperus!

Dürfte am Tabellennamen "Übersicht" liegen ...

Grüße
bastla
Bitte warten ..
Mitglied: Hesperus
01.08.2010 um 20:28 Uhr
Hattest Recht Bastla, der Fehler lag am Namen.

Hab den Namen geändert und er hat auch ein Neues Blatt angelegt aber das Blatt "Vorlage" ist "verschwunden" und daher kommt schon wieder ein Laufzeitfehler 9 (zeile2)....

Hättest du noch ne Idee?

many Thx!
Bitte warten ..
Mitglied: bastla
01.08.2010 um 21:03 Uhr
Hallo Hersperus!

Selbst wenn es in der Liste in J12:J186 den Eintrag "Vorlage" gäbe, müsste zumindest die Kopie erstellt (und dann auch wieder mit "Vorlage" benannt) worden sein ...

Welches ist denn bei Dir die Zeile 2?

Du kannst übrigens im VBA-Editor den Cursor in eine beliebige Zeile zwischen "Sub" und "End Sub" stellen und dann mit der Taste F8 schrittweise das Makro durchführen lassen - wenn Du den Inhalt zB der Variablen "NeueTabelle" oder den Wert von "Sheets.Count" (liefert die Anzahl der Blätter und damit die Nummer der bislang letzten Tabelle) prüfen willst, einfach mit dem Mauscursor auf die entsprechende Stelle des Codes zeigen.

Zwischenzeitlich kannst Du auch in das Excel-Fenster wechseln (oder gleich beide Fenster nebeneinander anordnen), auch wenn das in diesem Fall nicht allzuviel bringen wird ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
01.08.2010 um 23:34 Uhr
Hallo bastla!

Hab's mit Leerzellen getestet und dann treten tatsächlich die von Hersperus genannten Fehler auf und das Tabellenblatt Vorlage ist auch weg

@Hersperus
Also vor Zeile 4 einfügen:
If Not IsEmpty(NeueTabelle) Then
und nach Zeile 9:
End If
dann sollte es funktionieren

Gruß Dieter
Bitte warten ..
Mitglied: bastla
01.08.2010 um 23:45 Uhr
Hallo Dieter!

Den Fehler hinsichtlich des ungültigen Tabellennamens (und dafür gäbe es natürlich auch noch andere Möglichkeiten als ein Leerstring) kann ich reproduzieren - das Verschwinden der Tabelle "Vorlage" kriege ich aber nicht hin.

Dein Zusatz ist auf jeden Fall sinnvoll, allerdings wäre eigentlich eine vollständige Prüfung des Namens auf Verträglichkeit mit den Excel-Konventionen für Tabellennamen (die ich mir gelegentlich einmal genauer ansehen muss) erforderlich ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
02.08.2010 um 00:14 Uhr
Hallo bastla!

Zitat von bastla:
Den Fehler hinsichtlich des ungültigen Tabellennamens (und dafür gäbe es natürlich auch noch andere
Möglichkeiten als ein Leerstring) kann ich reproduzieren - das Verschwinden der Tabelle "Vorlage" kriege ich aber
nicht hin.
Mhm, jetzt kriege ich's auch nicht mehr hin, aber vorhin war's beim testen mit Leerzellen auf einmal weg
Verträglichkeit mit den Excel-Konventionen für Tabellennamen (die ich mir gelegentlich einmal genauer ansehen muss)
erforderlich ...
Das würde ich wiederum auch über Error Resume Next machen (If Err...)

Gruß Dieter
Bitte warten ..
Mitglied: Hesperus
04.08.2010 um 11:31 Uhr
Hallo Bastla & Dieter,

habt erst einmal vielen Dank für eure Antworten und die Hilfe, dies hat mir sehr geholfen (auch das ich wusste, dass nicht nur bei mir Probleme waren ).

@ Bastla: Was auf alle Fälle nicht geklappt hat, ist das automatische überschreiben der eventl. vorhandenen Mappen aber das ist nicht schlimm gewesen.


Eine letzte Frage hätte ich jetzt in diesem Zusammenhang noch:

Ich habe jetzt mein Exceldokument mit ca. 200 Mappen und auf der ersten Mappe (Übersicht) die Spalte (J12-J212) mit den Namen der einzelnen Mappen. Besteht die Möglichkeit mit einer Formel oder ggf. mit einen Makro in der Spalte K einen Hyperlink zu der jeweiligen Mappe anzulegen?
Hab es schon mit Zusammenfüger mehrerer Zellen versucht & den Befehl Hyperlink aber irgendwie klappt das nicht.

Noch einmal vielen Dank
LG Hesperus
Bitte warten ..
Mitglied: 76109
04.08.2010 um 13:05 Uhr
Hallo Hesperus!

Mit Mappen meinst Du vermutlich Tabellenblätter, denn nach meinem Verständnis sind Mappen Arbeitsmappen bzw. Excel-Dateien.

Falls Du also Tabellenblätter meinst, dann ließe sich das in etwa so machen, wobei der Tab-Name in der Spalte J steht und der Link bzw. Formel z.B. in Spalte K.
=WENN(J12<>"";HYPERLINK("[MeineDatei.xls]" & J12 & "!A1";"Link");"")
Allerdings wird der Link - zumindest bei mir - nicht in blau mit Unterstrich angezeigt

Andernfalls ließe sich das auch per Makro machen (in blau mit Unterstrich)

Gruß Dieter
Bitte warten ..
Mitglied: Hesperus
04.08.2010 um 14:18 Uhr
Hallo Dieter,

sorry meinte natürlich Tabellenblätter. Bin heute irgendwie ein bissl neben der Spur .

Die Formel hat perfekt funktioniert (sogar mit blauen Unterstrich ).

habt nochmals vielen Dank
LG Hesperus
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
Excel Inhaltsverzeichnis Layout automatisch erstellen (3)

Frage von Julian8990 zum Thema VB for Applications ...

Microsoft Office
gelöst Excel Daten automatisch in mehrere Exceldateien exportieren (9)

Frage von paggo69 zum Thema Microsoft Office ...

Microsoft Office
gelöst Registerkarte in Excel automatisch färben (14)

Frage von ralfkausk zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...