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, 28779 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 ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel VBA - Inhalte und Dateiname von txt-Dateien automatisch in Excel importieren (2)

Frage von Booster07 zum Thema Microsoft Office ...

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

Frage von ralfkausk zum Thema Microsoft Office ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(11)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

Frage von pierrehansen zum Thema LAN, WAN, Wireless ...

Basic
Programmierung von Windows Programmen (10)

Frage von Ghost108 zum Thema Basic ...