AW: VBA .find Exakte suche Zelleninhalt durchsuchen
20.12.2016 08:51:25
Johannes
Hallo Luschi, hallo Werner,
erstmal vielen Dank für die Unterstützung.
@Luschi anbei eine Probe-Datenbank:
https://www.herber.de/bbs/user/110116.xlsx
und hier Mein Code:
Public IP As String
Public Prefix As String
Public Sub MSG_BOX_IP_Prefix()
' MSG_BOX_IP_Prefix Makro
'Prüfen ob Datenbank hinterlegt ist
Dim strBlattName As String
strBlattName = "Matrix IP"
On Error Resume Next
Worksheets(strBlattName).Activate
If Err.Number 0 Then
Err.Clear
MsgBox "Datenbank nicht gefunden!" & Chr(13) & "Bitte erste einspielen", , "Hinweis"
Exit Sub
End If
' Netz eintragen
IP = InputBox("Tragen Sie bitte die Netzadresse ein")
' Prefix eintragen
Prefix = InputBox("Prefix" & Chr(13) & "Trägschd bidde hier den Prefix oin" & Chr(13) & "wenn _
denn net woischd dann nimmschd bidde die 28")
If IP = "" Then
MsgBox ("Bitte IP und Prefix angeben"), vbInformation
Exit Sub
End If
'Prüfen ob schon nach diesem Netz gesucht wurde
Dim wsss As Worksheet
For Each wsss In ActiveWorkbook.Sheets
If wsss.Name = IP & "_" & Prefix Then
MsgBox ("Nach diesem Netz wurde bereits gesucht!")
Sheets(IP & "_" & Prefix).Select
Exit Sub
End If
Next
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = IP & "_" & Prefix
'Überschriften einfügen
Worksheets(IP & "_" & Prefix).Range("A1") = "IP Adresse"
Worksheets(IP & "_" & Prefix).Range("B1") = "Prefix"
Worksheets(IP & "_" & Prefix).Range("C1") = "Network Mask"
Worksheets(IP & "_" & Prefix).Range("D1") = "Standort_Port"
Worksheets(IP & "_" & Prefix).Range("E1") = "IF Alias"
Worksheets(IP & "_" & Prefix).Range("F1") = "ifAdminStatus"
Worksheets(IP & "_" & Prefix).Range("G1") = "ifOperStatus"
Worksheets(IP & "_" & Prefix).Range("H1") = "portSpeed"
Worksheets(IP & "_" & Prefix).Range("I1") = "IP Adresse Spectrum"
Columns("C:C").Select
Selection.NumberFormat = "000,000,000,000"
Range("A1").Select
'Werte einfügen
Worksheets(IP & "_" & Prefix).Range("A2") = IP
'Tabelle an Prefix anpassen
If Prefix = 29 Then
Worksheets(IP & "_" & Prefix).Range("B2:B8") = Prefix
Worksheets(IP & "_" & Prefix).Range("A2").AutoFill Destination:=Range("A2:A8"), Type:= _
xlFillDefault
ElseIf Prefix = 27 Then
Worksheets(IP & "_" & Prefix).Range("B2:B32") = Prefix
Worksheets(IP & "_" & Prefix).Range("A2").AutoFill Destination:=Range("A2:A32"), Type:= _
xlFillDefault
ElseIf Prefix = 30 Then
Worksheets(IP & "_" & Prefix).Range("B2:B4") = Prefix
Worksheets(IP & "_" & Prefix).Range("A2").AutoFill Destination:=Range("A2:A4"), Type:= _
xlFillDefault
ElseIf Prefix = 26 Then
Worksheets(IP & "_" & Prefix).Range("B2:B64") = Prefix
Worksheets(IP & "_" & Prefix).Range("A2").AutoFill Destination:=Range("A2:A64"), Type:= _
xlFillDefault
Else
Worksheets(IP & "_" & Prefix).Range("B2:B16") = Prefix
Worksheets(IP & "_" & Prefix).Range("A2").AutoFill Destination:=Range("A2:A16"), Type:= _
xlFillDefault
End If
'Sub Netz_Suchen()
Dim Suchzelle As String
Dim Z As Integer
Dim Name As String
Dim ifAdminStatus As String
Dim ifOperStatus As String
Dim IFalias As String
Dim IPadress As String
Dim portspeed As String
Dim NM As String
Z = 2
Anfang:
Suchzelle = Worksheets(IP & "_" & Prefix).Range("A" & Z)
'Suchen
Sheets("Matrix IP").Select
With ActiveSheet.Range("E1:H1048576") 'Range
Set C = .Find(What:=Suchzelle, LookIn:=xlValues, LookAt:=xlPart)
End With
If C.Row = False Then GoTo nexte
NM = Cells(C.Row, 11)
Name = Cells(C.Row, 1)
ifAdminStatus = Cells(C.Row, 2)
ifOperStatus = Cells(C.Row, 3)
portspeed = Cells(C.Row, 9)
IFalias = Cells(C.Row, 6)
IPadress = Cells(C.Row, 8)
Worksheets(IP & "_" & Prefix).Range("C" & Z) = NM
Worksheets(IP & "_" & Prefix).Range("D" & Z) = Name
Worksheets(IP & "_" & Prefix).Range("E" & Z) = IFalias
Worksheets(IP & "_" & Prefix).Range("F" & Z) = ifAdminStatus
Worksheets(IP & "_" & Prefix).Range("G" & Z) = ifOperStatus
Worksheets(IP & "_" & Prefix).Range("H" & Z) = portspeed
Worksheets(IP & "_" & Prefix).Range("I" & Z) = IPadress
'Nächste suchzelle und Präfix Prüfung
nexte:
Z = Z + 1
If Prefix = 29 And Z = 9 Or Prefix = 28 And Z = 17 Or Prefix = 27 And Z = 33 Or Prefix = 30 And _
Z = 5 Or Prefix = 26 And Z = 65 Then GoTo ende Else GoTo Anfang
ende:
Sheets(IP & "_" & Prefix).Select
Cells.EntireColumn.AutoFit
End Sub
@Werner ich hab da schon eine Idee wie ich das Testen kann.
Gruß Johannes