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

Code sehr langsam

Code sehr langsam
08.01.2019 09:50:42
Andi
Hallo zusammen. Ich habe ein Problem mit einem Makro welches ich erstellt habe. Das Makro funtkioniert soweit, bis auf die Auswahl der Bilder. Zudem ist es aber extrem langsam. Könntet ihr mir allenfalls den Code optimieren oder mir wenigstens einen Hinweis geben, weshalb der Code so langsam ist?
Vielen Dank im Voraus. Lieber Gruss und ein gutes 2019 wünscht Andi.
Code:
Sub Tabellenblatt_Aufgaben_Bewertung_Kopieren_alle()
Dim Index As Integer            'Zellennummer auf Seite
Dim Nummer As String            'Nummer Bsp. 31-02
Dim Name As String              'Name
Dim Nachname As String          'Nachname der Person
Dim Vorname As String           'Vorname der Person
Dim Kandidatennummer As String  'Kandidatennummer Bsp. 1
Dim Blattname As String         'Blattname der Originaldatei
'Deklaration Masse
Dim Ausführung As String
Dim Rückwand As String
Dim Frontholzstruktur As String
Dim Höhe As Integer
Dim Breite As Integer
Dim Tiefe As Integer
Dim Konstruktion As String
Dim Mass As Integer
Dim Elementmass As Integer
Dim Bildnummer As Integer
'Dim Bild As Picture
msgbox "Bitte haben Sie ein wenig Geduld, sämtliche Blätter werden nun erstellt."
'Nummer = Tabelle1.ComboBox2.Value
'Initialisieren der Variablen
Index = 4       'Start auf Zeile 4
Nachname = ""   'Leer
Vorname = ""
Kandidatennummer = ""
Blattname = "Kandidaten"
'Index2 = Bildnummer
Call Löschen_Tabellenblaetter_ausser_originale              'Rufe Makro "Lö _
schen_Tabellenblaetter_ausser_originale" auf und führe aus.
Sheets("Kandidaten").Select
With Application
.ScreenUpdating = False                     'Ab hier wird der Screen nicht mehr  _
aktualisiert = kein Flackern
.Calculation = xlCalculationManual          'Hier wird die automatische Berechung  _
ausgeschaltet Achtung: Diese muss unten wieder eingeschaltet werden
.EnableEvents = False                       'Ab hier werden PopUp's etc. unterdrü _
ckt
End With
On Error GoTo ENDE:
'Suche Spalte mit Nummer
Do Until Range("B" & Index) = "" Or Range("B" & Index) = Nummer         'Mache bis, Finde  _
Spalte B und Index leer ist, oder bis die Nummer gefunden ist
Nummer = Range("B" & Index)
'Wenn Spalte gefunden dann Variablen Auslesen und im System ablegen
'Variablen zuweisen von "Hauptblatt"
Nummer = Sheets("Kandidaten").Range("B" & Index)             'Kopiere und weise  _
Zellinhalt "Inhalt" als Nummer aus dem Blatt "Hauptblatt" in der Spalte B
Nachname = Sheets("Kandidaten").Range("C" & Index)           'Kopiere und weise  _
Zellinhalt "Nachname" als Nummer aus dem Blatt "Hauptblatt" in der Spalte B
Vorname = Sheets("Kandidaten").Range("D" & Index)            'Kopiere und weise  _
Zellinhalt "Vorname" als Nummer aus dem Blatt "Hauptblatt" in der Spalte B
Ausführung = Sheets("Kandidaten").Range("E" & Index)
Rückwand = Sheets("Kandidaten").Range("F" & Index)
Frontholzstruktur = Sheets("Kandidaten").Range("G" & Index)
Höhe = Sheets("Kandidaten").Range("H" & Index)
Breite = Sheets("Kandidaten").Range("I" & Index)
Tiefe = Sheets("Kandidaten").Range("J" & Index)
Konstruktion = Sheets("Kandidaten").Range("L" & Index)
Mass = Sheets("Kandidaten").Range("M" & Index)
Bildnummer = Sheets("Kandidaten").Range("K" & Index)
'            Bild = Sheets("Bilder").Range("A" & Index2)
'Elementmass = Scheets("Kandidaten").Range("H" & Index) - Scheets("Kandidaten"). _
Range("M" & Index)
'Vorlage aktivieren
Worksheets("Aufgabenstellung").Visible = True                                      ' _
Blendet Blatt "Aufgabenstellung" ein
'Neues Sheet erstellen mit Name des Kanididaten
ErrorFlag = True
'On Error GoTo errorhandler1                                                                 _
'Im Falle einses Fehler gehe nach...errorhandler1
ActiveWorkbook.Sheets("Aufgabenstellung").Copy after:=Worksheets(Worksheets.Count) ' _
neues Blatt am Ende der Tabelle
ActiveWorkbook.Sheets("Aufgabenstellung (2)").Name = Nachname + " " + Vorname + " " + " _
Aufgabe"
''        Sheets(Worksheets.Count).Name = Nachname + " " + Vorname + " " + "Aufgabe"
ErrorFlag = False
Application.DisplayAlerts = False
''errorhandler1:                                                                             _
'Programm wird bis zu diesem Punkt übersprungen
''    If ErrorFlag Then                                                                      _
'Wenn ein Fehler auftritt
''        Application.DisplayAlerts = False                                                  _
'Popup-Fehlerfenster = false = deaktivieren
''        Sheets(Worksheets.Count).Delete                                                    _
'Löscht das erstellte Sheet
''        'Sheets("Aufgabenstellung (2)").Delete
''        Application.DisplayAlerts = True                                                   _
'Popup-Fehlerfenster = true = aktiviert für "spätere Fehlermeldungen"
''    End If                                                                                 _
'Schluss mit Wenn
'Vorlage deaktivieren
Worksheets("Aufgabenstellung").Visible = False                                           _
'Blendet "Aufgabenstellung" aus
'Sheet ausfüllen (Achtung: Der Sheets-Name muss wie oben im "Namen ändern" angegeben  _
werden, ansonsten haben wir einen Syntaxfehler)
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("N9").Value = Nummer            _
'Füllt den Inhalt Nummer in den neuen Kandidat auf der entsprechnenden Zelle
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("E9") = Nachname
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("E8") = Vorname
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H31") = Ausführung
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H32") = Rückwand
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H34") = Frontholzstruktur
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("D39") = Konstruktion
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G46") = Höhe
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G47") = Breite
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G48") = Tiefe
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("C36") = Bildnummer
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("C36") = Bildnummer
'Hier wird das Bild angepasst
ActiveSheet.Shapes.Range(Array("Picture 7")).Select
Selection.ShapeRange.Height = 368.5039370079
'-------------Bewertung, passend zum Kandidaten-----------------------
'Vorlage aktivieren
Worksheets("Bewertung").Visible = True                                      'Blendet  _
Blatt "Bewertung" ein
'Neues Sheet erstellen mit Name des Kanididaten
'        ErrorFlag = False
'On Error GoTo errorhandler1                                                                 _
'Im Falle einses Fehler gehe nach...errorhandler1
ActiveWorkbook.Sheets("Bewertung").Copy after:=Worksheets(Worksheets.Count) 'neues  _
Blatt am Ende der Tabelle
ActiveWorkbook.Sheets("Bewertung (2)").Name = Nachname + " " + Vorname + " " + " _
Bewertung"
''        Sheets(Worksheets.Count).Name = Nachname + " " + Vorname + " " + "Bewertung"
'        ErrorFlag = False
Worksheets("Bewertung").Visible = False                              'Blendet Blatt " _
Bewertung" aus
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("E6").Value = Nummer          _
'Füllt den Inhalt Nummer in den neuen Kandidat auf der entsprechnenden Zelle
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("C5").Value = Nachname
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("C6").Value = Vorname
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D19").Value = Konstruktion
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D22").Value = Ausführung
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("E22").Value = Rückwand
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D36").Value = Höhe
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D37").Value = Breite
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D38").Value = Tiefe
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D39").Value = Elementmass
'Hier wird das Bild angepasst
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
Selection.ShapeRange.Height = 102.0472440945
Application.DisplayAlerts = True
'Vorlage deaktivieren
Worksheets("Bewertung").Visible = False                                                  _
'Blendet "Bewertung" aus
'Sheets(Nachname + " " + Vorname + " " + "Bankbesch.").Range("A1").Select                _
'Öffnet gleich den neu erstellten Kandidaten
Sheets("Kandidaten").Select
Index = Index + 1           'Fahre im Index immer eine Zeile weiter
Loop       'Diese Prozedur wiederholen solange "Bedinungen" bei "Do Until" gewährleistet  _
werden.
ENDE:
With Application
.ScreenUpdating = True                      'Bildschirm wird wieder aktiviert
.Calculation = xlCalculationAutomatic       'Automatisches Rechnen in Excel
.EnableEvents = True                        'PopUp's wieder zulässig
End With
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code sehr langsam
08.01.2019 10:31:01
Burak
Guten Morgen
Erst einmal etwas übersichtlicher:
Mach aus

Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("E6").Value = Nummer          _
_
'Füllt den Inhalt Nummer in den neuen Kandidat auf der entsprechnenden Zelle
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("C5").Value = Nachname
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("C6").Value = Vorname
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D19").Value = Konstruktion
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D22").Value = Ausführung
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("E22").Value = Rückwand
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D36").Value = Höhe
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D37").Value = Breite
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D38").Value = Tiefe
Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D39").Value = Elementmass
das

With Sheets(Nachname + " " + Vorname + " Bewertung")
.Range("C5").Value = Nachname
.Range("C6").Value = Vorname
.Range("D19").Value = Konstruktion
.Range("D22").Value = Ausführung
.Range("E22").Value = Rückwand
.Range("D36").Value = Höhe
.Range("D37").Value = Breite
.Range("D38").Value = Tiefe
.Range("D39").Value = Elementmass
End With
und genauso aus

Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("N9").Value = Nummer            _
_
'Füllt den Inhalt Nummer in den neuen Kandidat auf der entsprechnenden Zelle
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("E9") = Nachname
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("E8") = Vorname
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H31") = Ausführung
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H32") = Rückwand
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H34") = Frontholzstruktur
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("D39") = Konstruktion
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G46") = Höhe
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G47") = Breite
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G48") = Tiefe
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("C36") = Bildnummer
Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("C36") = Bildnummer
einfach

With Sheets(Nachname + " " + Vorname + " Aufgabe")
.Range("N9").Value = Nummer
.Range("E9") = Nachname
.Range("E8") = Vorname
.Range("H31") = Ausführung
.Range("H32") = Rückwand
.Range("H34") = Frontholzstruktur
.Range("D39") = Konstruktion
.Range("G46") = Höhe
.Range("G47") = Breite
.Range("G48") = Tiefe
.Range("C36") = Bildnummer
.Range("C36") = Bildnummer
End With
Dank dem With-Befehl brauchst du nicht immer denselben Text erneut schreiben. Nur den Punkt vor jedem Range nicht vergessen :)
Und ist zwar Geschmacksssache, aber das geht auch:

Dim Ausführung As String, Rückwand As String, Frontholzstruktur As String, Höhe As Integer,  _
Breite As Integer
Dim Tiefe As Integer, Konstruktion As String, Mass As Integer, Elementmass As Integer,  _
Bildnummer As Integer
'Dim Bild As Picture
So brauchst du jede Deklaration nicht untereinander schreiben.
Die Anderen werden dir bei der Performance noch helfen ;)
Grüße
Anzeige
AW: Code sehr langsam
08.01.2019 10:48:09
Daniel
Hi
ActiveWorkbook.Sheets("Bewertung").Copy after:=Worksheets(Worksheets.Count)
ist relativ langsam, weil bei Sheets.Copy wirklich alles mit kopiert wird u.a. auch die Seiteneinrichtung für den Druck.
Das braucht viel Zeit, weil Excel bei Änderungen der Seiteneinrichtung erstmal "ein Kaffekränzchen" mit dem Druckertreiber hält.
wenn man jetzt von dem Kopierten Blatt nur die Inhalte aus dem Tabellenblatt benötigt, kann es daher schneller sein ein leeres Blatt mit Sheets.Add hinzuzufügen und dann die benötigten Inhalte zu kopieren und einzufügen.
Wenn Sheets.Copy benötigt wird, (Seiteneinrichtung wird benötigt, oder das Blatt hat Eventmakros die mit übernommen werden sollen), kannst du mal versuchen die Kommunikaiton mit dem Durcker auszuschalten:
Application.PrintCommunication = False
weiterhin würde ich dir emfpehlen dir mal die WITH-Klammer anzuschauen.
das macht den Code zwar nicht schneller, aber übersichtleicher weil du das bei WITH-Definierte Objekt nicht hinschreiben musst, sondern im Folgecode durch den Punkt ersetzen kannst.
sieht dann bspw für das Einfügen der Texte so aus:
WITH Sheets(Nachname + " " + Vorname + " " + "Bewertung")
.Range("E6").Value = Nummer          _
'Füllt den Inhalt Nummer in den neuen Kandidat auf der entsprechnenden Zelle
.Range("C5").Value = Nachname
.Range("C6").Value = Vorname
.Range("D19").Value = Konstruktion
.Range("D22").Value = Ausführung
.Range("E22").Value = Rückwand
.Range("D36").Value = Höhe
.Range("D37").Value = Breite
.Range("D38").Value = Tiefe
.Range("D39").Value = Elementmass
End With
weiterhin ist es schneller, wenn man Zellen, die direkt nebeneinander liegen, in einem probrammschritt befüllt und nicht jede Zelle einzeln:
.Range("D36:D39").Value = Worksheetfunction.Transpose(Array(Höhe, Breite, Tiefe, Elementmass))

(Transpose ist hier erforderlich, weil normalerweise die Arraywerte beim Einfügen in ein Tabellenblatt nebeneinander liegen und hier aber untereinander liegen sollen)
gruß Daniel
Anzeige
AW: Code sehr langsam
08.01.2019 11:35:54
Andi
Hallo Burak, Hallo Daniel
Danke euch beiden für die Hilfe. Das Programm ist nun etwas schneller, jedoch hat er für 10 Kandidaten immer noch etwa 3 Minuten. Jedoch können hier bis zu 90 Kandidaten stehen. Das wäre dann etwas lange zum erstellen...
Lustig ist, das er für das Drucken mit einem anderen Makro danach die erstllten Blätter ziemlich schnell drucken kann auch als PDF.
Findet ihr das Programm zu kompliziert? Grundsätzlich könnte ich sicher die beiden "Rohlinge" (Aufgabenstellung und Bewertung) nur kopieren. Jedoch muss das Layout immer gleich aussehen.
Was meint ihr dazu.
Vielen Dank und liebe Grüsse Andi
Anzeige
AW: Code sehr langsam
08.01.2019 11:37:05
Andi

Sub Tabellenblatt_Aufgaben_Bewertung_Kopieren_alle()
Dim Index As Integer            'Zellennummer auf Seite
Dim Nummer As String            'Nummer Bsp. 31-02
Dim Name As String              'Name
Dim Nachname As String          'Nachname der Person
Dim Vorname As String           'Vorname der Person
Dim Kandidatennummer As String  'Kandidatennummer Bsp. 1
Dim Blattname As String         'Blattname der Originaldatei
'Deklaration Masse
Dim Ausführung As String
Dim Rückwand As String
Dim Frontholzstruktur As String
Dim Höhe As Integer
Dim Breite As Integer
Dim Tiefe As Integer
Dim Konstruktion As String
Dim Mass As Integer
Dim Elementmass As Integer
Dim Bildnummer As Integer
'Dim Bild As Picture
msgbox "Bitte haben Sie ein wenig Geduld, sämtliche Blätter werden nun erstellt."
'Nummer = Tabelle1.ComboBox2.Value
'Initialisieren der Variablen
Index = 4       'Start auf Zeile 4
Nachname = ""   'Leer
Vorname = ""
Kandidatennummer = ""
Blattname = "Kandidaten"
'Index2 = Bildnummer
Call Löschen_Tabellenblaetter_ausser_originale              'Rufe Makro "Lö _
schen_Tabellenblaetter_ausser_originale" auf und führe aus.
Sheets("Kandidaten").Select
With Application
.ScreenUpdating = False                     'Ab hier wird der Screen nicht mehr  _
aktualisiert = kein Flackern
.Calculation = xlCalculationManual          'Hier wird die automatische Berechung  _
ausgeschaltet Achtung: Diese muss unten wieder eingeschaltet werden
.EnableEvents = False                       'Ab hier werden PopUp's etc. unterdrü _
ckt
End With
On Error GoTo ENDE:
Application.PrintCommunication = False                  'Hier wird das "Kaffeekränzchen mit dem  _
Druckertreiber unterbunden, damit die ganze Prozedur nicht Ewig dauert!
'Suche Spalte mit Nummer
Do Until Range("B" & Index) = "" Or Range("B" & Index) = Nummer         'Mache bis, Finde  _
Spalte B und Index leer ist, oder bis die Nummer gefunden ist
Nummer = Range("B" & Index)
'Wenn Spalte gefunden dann Variablen Auslesen und im System ablegen
'Variablen zuweisen von "Hauptblatt"
Nummer = Sheets("Kandidaten").Range("B" & Index)             'Kopiere und weise  _
Zellinhalt "Inhalt" als Nummer aus dem Blatt "Hauptblatt" in der Spalte B
Nachname = Sheets("Kandidaten").Range("C" & Index)           'Kopiere und weise  _
Zellinhalt "Nachname" als Nummer aus dem Blatt "Hauptblatt" in der Spalte B
Vorname = Sheets("Kandidaten").Range("D" & Index)            'Kopiere und weise  _
Zellinhalt "Vorname" als Nummer aus dem Blatt "Hauptblatt" in der Spalte B
Ausführung = Sheets("Kandidaten").Range("E" & Index)
Rückwand = Sheets("Kandidaten").Range("F" & Index)
Frontholzstruktur = Sheets("Kandidaten").Range("G" & Index)
Höhe = Sheets("Kandidaten").Range("H" & Index)
Breite = Sheets("Kandidaten").Range("I" & Index)
Tiefe = Sheets("Kandidaten").Range("J" & Index)
Konstruktion = Sheets("Kandidaten").Range("L" & Index)
Mass = Sheets("Kandidaten").Range("M" & Index)
Bildnummer = Sheets("Kandidaten").Range("K" & Index)
'            Bild = Sheets("Bilder").Range("A" & Index2)
'Elementmass = Scheets("Kandidaten").Range("H" & Index) - Scheets("Kandidaten"). _
Range("M" & Index)
'Vorlage aktivieren
Worksheets("Aufgabenstellung").Visible = True                                      ' _
Blendet Blatt "Aufgabenstellung" ein
'Neues Sheet erstellen mit Name des Kanididaten
ErrorFlag = True
'On Error GoTo errorhandler1                                                                 _
'Im Falle einses Fehler gehe nach...errorhandler1
ActiveWorkbook.Sheets("Aufgabenstellung").Copy after:=Worksheets(Worksheets.Count) ' _
neues Blatt am Ende der Tabelle
ActiveWorkbook.Sheets("Aufgabenstellung (2)").Name = Nachname + " " + Vorname + " " + " _
Aufgabe"
''        Sheets(Worksheets.Count).Name = Nachname + " " + Vorname + " " + "Aufgabe"
ErrorFlag = False
Application.DisplayAlerts = False
''errorhandler1:                                                                             _
'Programm wird bis zu diesem Punkt übersprungen
''    If ErrorFlag Then                                                                      _
'Wenn ein Fehler auftritt
''        Application.DisplayAlerts = False                                                  _
'Popup-Fehlerfenster = false = deaktivieren
''        Sheets(Worksheets.Count).Delete                                                    _
'Löscht das erstellte Sheet
''        'Sheets("Aufgabenstellung (2)").Delete
''        Application.DisplayAlerts = True                                                   _
'Popup-Fehlerfenster = true = aktiviert für "spätere Fehlermeldungen"
''    End If                                                                                 _
'Schluss mit Wenn
'Vorlage deaktivieren
Worksheets("Aufgabenstellung").Visible = False                                           _
'Blendet "Aufgabenstellung" aus
'Sheet ausfüllen (Achtung: Der Sheets-Name muss wie oben im "Namen ändern" angegeben  _
werden, ansonsten haben wir einen Syntaxfehler)
With Sheets(Nachname + " " + Vorname + " Aufgabe")
.Range("N9").Value = Nummer
.Range("E9") = Nachname
.Range("E8") = Vorname
.Range("H31") = Ausführung
.Range("H32") = Rückwand
.Range("H34") = Frontholzstruktur
.Range("D39") = Konstruktion
.Range("G46") = Höhe
.Range("G47") = Breite
.Range("G48") = Tiefe
.Range("C36") = Bildnummer
.Range("C36") = Bildnummer
End With
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("N9").Value = Nummer         _
'Füllt den Inhalt Nummer in den neuen Kandidat auf der entsprechnenden Zelle
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("E9") = Nachname
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("E8") = Vorname
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H31") = Ausführung
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H32") = Rückwand
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("H34") = Frontholzstruktur
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("D39") = Konstruktion
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G46") = Höhe
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G47") = Breite
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("G48") = Tiefe
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("C36") = Bildnummer
'''        Sheets(Nachname + " " + Vorname + " " + "Aufgabe").Range("C36") = Bildnummer
'Hier wird das Bild angepasst
ActiveSheet.Shapes.Range(Array("Picture 7")).Select
Selection.ShapeRange.Height = 368.5039370079
'-------------Bewertung, passend zum Kandidaten-----------------------
'Vorlage aktivieren
Worksheets("Bewertung").Visible = True                                      'Blendet  _
Blatt "Bewertung" ein
'Neues Sheet erstellen mit Name des Kanididaten
'        ErrorFlag = False
'On Error GoTo errorhandler1                                                                 _
'Im Falle einses Fehler gehe nach...errorhandler1
ActiveWorkbook.Sheets("Bewertung").Copy after:=Worksheets(Worksheets.Count) 'neues  _
Blatt am Ende der Tabelle
ActiveWorkbook.Sheets("Bewertung (2)").Name = Nachname + " " + Vorname + " " + " _
Bewertung"
''        Sheets(Worksheets.Count).Name = Nachname + " " + Vorname + " " + "Bewertung"
'        ErrorFlag = False
Worksheets("Bewertung").Visible = False                              'Blendet Blatt " _
Bewertung" aus
With Sheets(Nachname + " " + Vorname + " " + "Bewertung")
.Range("E6").Value = Nummer                                 'Füllt den Inhalt  _
Nummer in den neuen Kandidat auf der entsprechnenden Zelle
.Range("C5").Value = Nachname
.Range("C6").Value = Vorname
.Range("D19").Value = Konstruktion
.Range("D22").Value = Ausführung
.Range("E22").Value = Rückwand
.Range("D36").Value = Höhe
.Range("D37").Value = Breite
.Range("D38").Value = Tiefe
.Range("D39").Value = Elementmass
End With
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("E6").Value = Nummer       _
'Füllt den Inhalt Nummer in den neuen Kandidat auf der entsprechnenden Zelle
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("C5").Value = Nachname
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("C6").Value = Vorname
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D19").Value =  _
Konstruktion
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D22").Value = Ausführung
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("E22").Value = Rückwand
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D36").Value = Höhe
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D37").Value = Breite
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D38").Value = Tiefe
'''        Sheets(Nachname + " " + Vorname + " " + "Bewertung").Range("D39").Value =  _
Elementmass
'Hier wird das Bild angepasst
ActiveSheet.Shapes.Range(Array("Picture 3")).Select
Selection.ShapeRange.Height = 102.0472440945
Application.DisplayAlerts = True
'Vorlage deaktivieren
Worksheets("Bewertung").Visible = False                                                  _
'Blendet "Bewertung" aus
'Sheets(Nachname + " " + Vorname + " " + "Bankbesch.").Range("A1").Select                _
'Öffnet gleich den neu erstellten Kandidaten
Sheets("Kandidaten").Select
Index = Index + 1           'Fahre im Index immer eine Zeile weiter
Loop       'Diese Prozedur wiederholen solange "Bedinungen" bei "Do Until" gewährleistet  _
werden.
ENDE:
With Application
.ScreenUpdating = True                      'Bildschirm wird wieder aktiviert
.Calculation = xlCalculationAutomatic       'Automatisches Rechnen in Excel
.EnableEvents = True                        'PopUp's wieder zulässig
End With
Application.PrintCommunication = True                 'Ab hier darf Excel wieder mit dem  _
Druckertreiber kommunizieren.
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige