Hallo! Warum hast du den da jetzt noch einen Post aufgemacht? Nun denn, die Makros sind alle mehr oder wenig identisch. Sie werten mal was anderes aus, schreiben was anderes in die Rohdaten bzw. gehen was anders aus. Für das erste wäre hier eine Beschreibung. Ist bei den anderen ähnlich. Ggf mal selber übertragen und wenn bei einigen dann noch Fragen sind, die posten. VG
Private Sub CommandButton10_Click()
Dim Zelle As Range
'übernimmt den Wert der aktiven Zellen in die Variable ID
ID = ActiveCell.Value
'prüft ID obsgößer 0 ist, wenn ja kommt der Code darunter sonst nix
If ID > 0 Then
'WErt ist größer 0
'schreibt den Wert von ID in die Zelle G des aktiven blattes
Range("G5").Value = ID
'legt eine Abkürzung fest um den Teil nich timmer schreiben zu müssen, wir mit .blabla genutzt
'ist in dem Fall die Spalte A im Blatt Rohdaten
With Sheets("Rohdaten").Range("a1:a90000")
'such in der Spalte A von Rohdaten nach dem Wert ID
'das Ergebnis kommt in Zelle. Ergebis ist die Zelle oder nothing
Set Zelle = .Find(ID, LookIn:=xlValues)
'prüfen ob was gefunden, deshlab doppelte Verneinung, dann hat man was
If Not Zelle Is Nothing Then
'speichert die Adresse der gefunden Zelle um einen Abgleich bei weiteren Treffern zu haben
firstaddress = Zelle.Address
'sucht den Wert nochmal, in Zelle kommt wieder das Ergebnis, entweder eine neue Zelle oder wieder die erste
Set Zelle = .FindNext(Zelle)
'vergleicht die Adresse der neuen suche mit der alten
If Zelle.Address <> firstaddress Then
'mehrfach gefunden, da die adressen unterschiedlich sind
Range("H5").Value = "ist nicht einzigartig"
Else
'nur einmal gefunden
'ruf ein makro auf, welches vermtl. den Blattschutz aufhebt
Call Blattschutz_aufheben
'nimmt den WErt in der Spalte rechts vom Treffer auf
job = Zelle.Offset(0, 1).Value
'schreibt 10 spalten weiter vom treffer das datum, selbe zeile in Rohdaten
Zelle.Offset(0, 10).Value = Date
'InputBox("Bitte geben Sie den aktuellen Wochentag ein (z.B. Mo)", "Wochentag", Format(Date, "Ddd"))
'nimmt nochmal den selben wert 1 rechts davon auf, kann raus ist doppelt
job = Zelle.Offset(0, 1).Value
'liest den Namen des Windowsanwenders aus
strNutzername = Environ("Username")
'schreibt den Namen rechts vom treffer in 14 spalten entfernung, selbe zeile in rohdaten
Zelle.Offset(0, 14).Value = strNutzername
'setzt den blattschutz mittles makro
Call Blattschutz_setzen
'schreibt im aktiven blatt den Text
Range("K5").Value = "Datum wurde auf morgen gesetzt"
'schreibt den text, der aus rohdaten kopiert wurde
Range("H5").Value = job
End If
Else
Range("K5").Value = "wurde nicht gefunden"
End If
End With
End If
'wählt das Blatt Projektplanung aus
Sheets("Projektplanung").Select
'aktualisiert die Pivottabellen
ActiveSheet.PivotTables("PivotTable1").RefreshTable
'ruft ein Marko mit dem Namen auf
Call UserName2
End Sub
|