Thema Datum  Von Nutzer Rating
Antwort
19.12.2016 16:35:42 Johannes
NotSolved
19.12.2016 17:45:31 Gast98331
NotSolved
19.12.2016 18:07:21 Gast43059
NotSolved
19.12.2016 19:41:07 Gast42924
NotSolved
19.12.2016 20:25:00 Johannes
NotSolved
Blau Mein Code ist zu kompliziert bzw. zu lang
19.12.2016 20:41:32 Gast60101
Solved
20.12.2016 09:25:07 Johannes
NotSolved
20.12.2016 09:35:17 Johannes
NotSolved
20.12.2016 17:24:19 Gast67265
NotSolved
22.12.2016 14:28:49 Johannes
NotSolved
19.12.2016 18:50:34 Mackie
NotSolved
19.12.2016 20:24:12 Johannes
NotSolved
19.12.2016 20:40:33 Mackie
NotSolved

Ansicht des Beitrags:
Von:
Gast60101
Datum:
19.12.2016 20:41:32
Views:
753
Rating: Antwort:
 Nein
Thema:
Mein Code ist zu kompliziert bzw. zu lang

Hallo! Da war noch ein kleiner Fehler. Die Bildschirmaktualisierung am Ende wurde nicht wieder eingeschaltet. Hier geändert. VG

 

Private Sub CommandButton1_Click()

Dim tab1
Dim tab2
Dim lspalte As Long     'Spalte in Tabelle 2
Dim pspalte As Long     'Spalte in Tabelle 1
Dim azeile As Long      'Zeile in Tabelle 2
Dim bzeile As Long      'Zeile in Tabelle 1
Dim spaltenanfang As Long 'ist der Anfang der Spalten hier Spalte 13
Dim zeilenanfang As Long  'ist der Anfang der Zeilen hier Zeile 52
Dim zeilenende As Long
Dim spaltenende As Long

'erstmal die Bildschirmaktualisierung ausschalten , man könnte ggf. noch mehr aussschalten, das sollte erstmal reichen
Application.ScreenUpdating = False

'allgemeine Werte
spaltenanfang = 13
spaltenende = 263
zeilenanfang = 52
zeilenende = 251

'die Eintragungen in den Zwischenspeicher
tab1 = Tabelle1.Range(Tabelle1.Cells(1, 1), Tabelle1.Cells(zeilenende, spaltenende)) '263
tab2 = Tabelle2.Range(Tabelle2.Cells(1, 1), Tabelle2.Cells(zeilenende, spaltenende))

For pspalte = spaltenanfang To spaltenende
'durch alle Spalten in Tabelle 1 gehen, in Spalte 13 startn
    For lspalte = spaltenanfang To spaltenende
    'durch alle Spalten in Tabelle 2 gehen
        If tab2(5, lspalte) = tab1(5, pspalte) Then
        'Mitarbeiter wurde gefunden, der kommt später nicht nochmal, also nach dem Abarbeiten die Schleife in Tabelle 2 verlassen
            'jetzt bei dem Mitarbeiter die ersten Werte kopieren, könnte man noch in eine Schleife auslagern
            tab1(5, pspalte) = tab2(5, lspalte)
            tab1(7, pspalte) = tab2(7, lspalte)
            tab1(8, pspalte) = tab2(8, lspalte)
            tab1(9, pspalte) = tab2(9, lspalte)
            tab1(10, pspalte) = tab2(10, lspalte)
            tab1(11, pspalte) = tab2(11, lspalte)
            tab1(14, pspalte) = tab2(14, lspalte)
            tab1(15, pspalte) = tab2(15, lspalte)
            tab1(17, pspalte) = tab2(17, lspalte)
            
            For bzeile = zeilenanfang To zeilenende
            'jetzt noch von Zeile 52 bis 251 die Zeilen durchgehen und in Spalte 5 die Werte vergleichen, in Tabelle 1 starten
                For azeile = zeilenanfang To zeilenende
                'prüfen ob die Eintragungen identisch in der Zeile sind
                    If tab2(azeile, 5) = tab1(bzeile, 5) Then
                        tab1(bzeile, pspalte) = tab2(azeile, lspalte)
                    End If
                Next azeile
            Next bzeile

            Exit For 'beendet die Schleife und geht in die nächse pspalte
        End If
    Next lspalte
Next pspalte

'die geänderten Eintragungen zurück
Tabelle1.Range(Tabelle1.Cells(1, 1), Tabelle1.Cells(251, 156)) = tab1
Application.ScreenUpdating = True
End Sub

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
19.12.2016 16:35:42 Johannes
NotSolved
19.12.2016 17:45:31 Gast98331
NotSolved
19.12.2016 18:07:21 Gast43059
NotSolved
19.12.2016 19:41:07 Gast42924
NotSolved
19.12.2016 20:25:00 Johannes
NotSolved
Blau Mein Code ist zu kompliziert bzw. zu lang
19.12.2016 20:41:32 Gast60101
Solved
20.12.2016 09:25:07 Johannes
NotSolved
20.12.2016 09:35:17 Johannes
NotSolved
20.12.2016 17:24:19 Gast67265
NotSolved
22.12.2016 14:28:49 Johannes
NotSolved
19.12.2016 18:50:34 Mackie
NotSolved
19.12.2016 20:24:12 Johannes
NotSolved
19.12.2016 20:40:33 Mackie
NotSolved