Zum Inhalt springen

Für Abschluss Projekt


DenizEmin

Empfohlene Beiträge

Hallo Leute :),

bin fast am verzweifeln und wäre froh wenn Ihr mir helfen könntet.

Also ich hab in Excel mehrere Register der eine heißt Mitarbeiter und der andere Stationen. Nun will ich das ein Button mir von Register Mitarbeiter A2:A693 ins Register Stationen A2:A693 kopiert.

Ich denk für Euch ist es einfach aber da ich kaum oder sagen wir keine Erfahrung in VBA hab, dank ich Euch!

Gruß Deniz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

es ist so, ich hab zwei Registerkarten die eine heißt Mitarbeiter die andere Stationen. Nun hab ich ein Button erstellt das mir bestimme Spalten von Mitarbeiter in bestimmte Spalten in Stationen kopiert.

Mein Problem ist jetzt, wie schaff ich es, das wenn ich was in Stationen zusätzlich reinschreib dies nicht überschrieben wird, sonder bei der Einfügung der Daten von Mitarbeiter ab der nächsten leeren Zeile weitergemacht wird?

Hier mal mein Code, den ich bis jetzt hab:

Sub Schaltfläche10_Klicken()

Dim summary As String

Worksheets("Mitarbeiter").Range("A2:A2000").Copy Destination:=Worksheets("Stationen").Range("A2")

Worksheets("Mitarbeiter").Range("F2:F2000").Copy Destination:=Worksheets("Stationen").Range("B2")

Worksheets("Mitarbeiter").Range("D22000").Copy Destination:=Worksheets("Stationen").Range("C2")

Worksheets("Mitarbeiter").Range("E2:E2000").Copy Destination:=Worksheets("Stationen").Range("D2")

Worksheets("Mitarbeiter").Range("G2:G2000").Copy Destination:=Worksheets("Stationen").Range("E2")

End Sub

Wär für Eure Hilfe dankbar da ich echt mittlerweilen am verzweifeln bin!

Gruß DenizEmin

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 1 Monat später...

Danke für die Hilfe. Hab jetzt meinen VBA-Code soweit fertig. Hätte jemand ne Idee wie ich den noch kürzen könnte und wie ich es hinkrieg das er mir die Hintergrundfarbe in Stationen nicht ändert? Hier mal der Code:

Sub Daten_vergleichen_über_2_Tabellenblätter()

'Variablen deklarieren

Dim Suchname As String, Fundname As Range, letzte_Zeile_Tab_Mitarbeiter As Long, _

letzte_Zeile_Tab_Stationen As Long, Zeile_Mitarbeiter As Long, Addresse As String, _

gefundene_Zeile As Long, Zeile_Stationen As Long

'Bildschirmaktualisierung ausschalten

Application.ScreenUpdating = False

'Letzte beschriebene Zeile in Blatt "Mitarbeiter" Spalte G ermitteln und

'in Variable "letzte_Zeile_Tab1" speichern

letzte_Zeile_Tab_Mitarbeiter = Sheets("Mitarbeiter").Range("G65536").End(xlUp).Row

'Letzte beschriebene Zeile in Blatt "Stationen" Spalte E ermitteln und

'in Variable "letzte_Zeile_Tab2" speichern

letzte_Zeile_Tab_Stationen = Sheets("Stationen").Range("E65536").End(xlUp).Row

'For/Next Schleife zum erfasse des Suchbegriffes in Blatt "Mitarbeiter"

For Zeile_Mitarbeiter = 2 To letzte_Zeile_Tab_Mitarbeiter

If Worksheets("Mitarbeiter").Cells(Zeile_Mitarbeiter, 7).Value <> Empty Then

'Den Namen aus der Zelle, die durch die For/Next Schleife angesprochen wird,

'auslesen und in Variable "Suchname" speichern

Suchname = Sheets("Mitarbeiter").Cells(Zeile_Mitarbeiter, 7)

'Den Namen aus der Variablen "Suchname" mit dem Bereich E2:E letzte Zeile Tab2

'in Blatt "Stationen" vergleichen

With Sheets("Stationen").Range("E2:E" & letzte_Zeile_Tab_Stationen)

Set Fundname = .Find(What:=Suchname, LookIn:=xlValues)

'Wenn keine Übereinstimmung gefunden, dann...

If Fundname Is Nothing Then

'... Hintergrundfarbe der gefundenen Zelle in Blatt "Mitarbeiter" in

'Farbe grün ändern und...

' Sheets("Mitarbeiter").Cells(Wiederholungen, 7).Interior.ColorIndex = 4

'... Hintergrundfarbe der gefundenen Zelle in Blatt "Stationen" in

'Farbe grün ändern und...

' Sheets("Stationen").Cells(gefundene_Zeile, 5).Interior.ColorIndex = 4

'...den Suchnamen in Blatt "Mitarbeiter" kopieren und in Blatt

'"Stationen" in die erste freie Zelle in Spalte E einfügen und...

Sheets("Mitarbeiter").Cells(Zeile_Mitarbeiter, 7).Copy

Sheets("Stationen").Cells(Sheets("Stationen").Range("E65536").End(xlUp). _

Offset(1, 5).Row, 5).PasteSpecial Paste:=xlValues, _

Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Mitarbeiter").Cells(Zeile_Mitarbeiter, 1).Copy

Sheets("Stationen").Cells(Sheets("Stationen").Range("A65536").End(xlUp). _

Offset(1, 1).Row, 1).PasteSpecial Paste:=xlValues, _

Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Mitarbeiter").Cells(Zeile_Mitarbeiter, 6).Copy

Sheets("Stationen").Cells(Sheets("Stationen").Range("B65536").End(xlUp). _

Offset(1, 2).Row, 2).PasteSpecial Paste:=xlValues, _

Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Mitarbeiter").Cells(Zeile_Mitarbeiter, 4).Copy

Sheets("Stationen").Cells(Sheets("Stationen").Range("C65536").End(xlUp). _

Offset(1, 3).Row, 3).PasteSpecial Paste:=xlValues, _

Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Sheets("Mitarbeiter").Cells(Zeile_Mitarbeiter, 5).Copy

Sheets("Stationen").Cells(Sheets("Stationen").Range("D65536").End(xlUp). _

Offset(1, 4).Row, 4).PasteSpecial Paste:=xlValues, _

Operation:=xlNone, SkipBlanks:=False, Transpose:=False

'Abfrage Ende

End If

End With

End If

'Nächsten Schleifendurchlauf starten

Next

End Sub

Link zu diesem Kommentar
Auf anderen Seiten teilen

Naja, optimieren musst du das Ding schon selbst :)

Aber ein, zwei Tipps kann ich dir geben:

Du hast mehrere Funktionsblöcke, die bis auf ein Paar Variablen völlig identisch sind. Solche Blöcke kannst du z.B. in eine eigene Methode auslagern, sodass du nur diese aufrufst und die entsprechenden Variablen einfach als Parameter übergibst.

Dann benutzt du einen unnötigen With-Block. Zumindest, soweit ich das gesehen hab. Du benutzt nur einmal ein .Find, ansonsten nichts in der Richtung. Prüfe dies.

Letztendlich kommentierst du zu ausgiebig. Naja okay, ist geschmackssache, aber zu viele Kommentare blähen den Code auf und machen das Gegenteil von dem, was sie eigentlich sollen: Übersicht und Klarheit verschaffen. Ein Beispiel: Da, wo du die Hintergrundfarbe festlegst. Die beiden Zeilen sind sich ziemlich ähnlich und können zusammen gefasst werden. Im Prinzip interessiert auch nicht wirklich, wo genau du jetzt was machst, sondern nur was du machst und das wo steht dann im Code.

Aber diese Zeilen hast du eh komplett auskommentiert, also kannst du sie auch raushauen, insofern sie wirklich nicht mehr benötigt werden.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...