Microsoft Excel

Herbers Excel/VBA-Archiv

Makro - Vollständigkeit einer Tabelle

Betrifft: Makro - Vollständigkeit einer Tabelle von: Rene
Geschrieben am: 14.11.2014 17:14:20

Hallo, erstmal zum Upload:

https://www.herber.de/bbs/user/93775.xlsx

Ich habe in Tabelle 2 und Tabelle 3 Stammdaten, welche hier gepflegt werden.

Im Overview soll nun ein Makro prüfen, welche Projekte in Tabelle 2 das Kriterium "yes" haben und noch nicht in C13-C35 enthalten sind. Das gleiche soll mit Tabelle 3 passieren für Cost Center, welche im Overview in C52-C66 stehen sollen.

!!!Achtung!!!
1) Ich brauche für Projekte ein Makro und für die Cost Center ein Makro.
2) Es ist wichtig das die im Overview bereits stehenden Projekte oder Cost center nicht aus tabelle 2 und Tabelle 3 überschrieben werden, sondern nur ans Ende angehängt werden.

Beispiel:
Projekte: Aus Tabelle 2 muss noch Projekt 16-28 eingefügt in den Overview aufgenommen werden (Kriterium "ja")
Cost Center: Aus Tabelle 3 muss Cost Center 15-20 eingefügt werden.

Ich hoffe Ihr könnt mir helfen. Vielen Dank im vorraus!
Danke und Gruß, Rene

  

Betrifft: AW: Makro - Vollständigkeit einer Tabelle von: Tino
Geschrieben am: 14.11.2014 18:06:00

Hallo,
kannst mal so testen.
Hinweis: Die Datei nicht als xlms, xlsb oder xls speichern, xlsx kann kein VBA!

Option Explicit

Sub Check_PROJECT_NAME()
Dim ArData, ArAusgabe
Dim rngAusgabe As Range
Dim n&, nn&

With Tabelle1
    Set rngAusgabe = .Range("C13:C35")
End With

With Tabelle2
    ArData = .Range("A3", .Cells(.Rows.Count, 1).End(xlUp)).Resize(, 10).Value2
End With

nn = 1
 
ArAusgabe = rngAusgabe.Value

With Application.WorksheetFunction
    For n = 1 To Ubound(ArData)
        If ArData(n, 10) = "ja" Then
            If .CountIf(rngAusgabe, ArData(n, 1)) = 0 Then
                For nn = nn To Ubound(ArAusgabe)
                    If ArAusgabe(nn, 1) = "" Then
                        ArAusgabe(nn, 1) = ArData(n, 1)
                        Exit For
                    End If
                Next nn
                If nn > Ubound(ArAusgabe) Then Exit For
            End If
        End If
    Next n
End With

rngAusgabe.Value = ArAusgabe
End Sub

Sub Check_Cost_Center_NAME()
Dim ArData, ArAusgabe
Dim rngAusgabe As Range
Dim n&, nn&

With Tabelle1
    Set rngAusgabe = .Range("C52:C66")
End With

With Tabelle3
    ArData = .Range("W2", .Cells(.Rows.Count, 23).End(xlUp)).Resize(, 2).Value2
End With

nn = 1
 
ArAusgabe = rngAusgabe.Value

With Application.WorksheetFunction
    For n = 1 To Ubound(ArData)
        If ArData(n, 2) = "ja" Then
            If .CountIf(rngAusgabe, ArData(n, 1)) = 0 Then
                For nn = nn To Ubound(ArAusgabe)
                    If ArAusgabe(nn, 1) = "" Then
                        ArAusgabe(nn, 1) = ArData(n, 1)
                        Exit For
                    End If
                Next nn
                If nn > Ubound(ArAusgabe) Then Exit For
            End If
        End If
    Next n
End With

rngAusgabe.Value = ArAusgabe
End Sub
Gruß Tino


  

Betrifft: AW: Makro - Vollständigkeit einer Tabelle von: Rene Lutz
Geschrieben am: 17.11.2014 12:34:21

Hallo,

das makro funktioniert Proma in der Upload-tabelle. Aber wenn ich es in mein file kopiere funktioniert es nicht mehr. Bei mir ist Tabelle 2 und Tabelle 3 anderen Namen und ist nicht 2tes oder 3tes Tabellenblatt. Spielt das eine Rolle?

Danke


  

Betrifft: AW: Makro - Vollständigkeit einer Tabelle von: Tino
Geschrieben am: 17.11.2014 17:04:51

Hallo,
der Name der Tabelle ist wichtig
(CodeName nicht Registernamen zu finden im VBA im Eigenschaftenfenster unter (Name))

Im Code ist die Tabelle1 wo die Daten hinsollen und Tabelle2 wo die Daten her kommen.


Gruß Tino


 

Beiträge aus den Excel-Beispielen zum Thema "Makro - Vollständigkeit einer Tabelle"