PDA

Vollständige Version anzeigen : Daten in Excel-Tabelle suchen und in andere Excel-Tabelle eintragen


Paul26_01
03.04.2012, 08:44
Hallo ihr Lieben,

da mir hier vor kurzem schonmal perfekt geholfen wurde versuche ich es jetzt noch einmal.

Ich habe folgende Excel-Tabelle: hat je nach System immer andere IP-Adressen (Source, Destination), Ports und Protokolle

http://www10.pic-upload.de/03.04.12/jubnxsuupo1l.jpg

Jetzt gilt es darum in folgende Excel-Tabelle die Zuordnung anders darzustellen:
Das Grundgerüst ist folgendes:

http://www10.pic-upload.de/03.04.12/f2e98to7j2k.jpg

Als Beispiel muss das ganze so aussehen wo sich

2.3.102.61 und 10.144.98.82 treffen muss ICMP - 24444 rein
2.3.102.61 und 10.144.98.91 treffen muss ICMP- 24444 rein
usw.

Es geht mir nur darum wo sich beide IP-Adressen treffen das Protokoll und den Dienst einzutragen!

Ich hoffe ich konnte es einigermaßen erklären. Ich wäre auch für einen Ansatz dankbar den ich umsetzten könnte allerdings fehlen mir gerade die Ideen wie ich es am besten umsetzten kann, denn das Source Excel-Sheet ist auch manchmal extrem lang

gruß
Danke schonmal wenn jemand behilflich sein kann

pefeu
03.04.2012, 10:04
Hallo Paul,

auch wenn es mühsam war, Deine Daten abzuschreiben, denn sie lassen sich ja leider nicht kopieren, hier eine mögliche Lösung Deines Problems.
<Font Face="Courier New,FixedSys"Size=2><Blockquote><FONT COLOR=#0000FF>Option</FONT>&nbsp;<FONT COLOR=#0000FF>Explicit</FONT>

<FONT COLOR=#0000FF>Public</FONT>&nbsp;<FONT COLOR=#0000FF>Sub</FONT>&nbsp;Kreuzung_finden()

<FONT COLOR=#0000FF>Dim</FONT>&nbsp;WkSh_Q&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;Worksheet
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;WkSh_Z&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;Worksheet
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;lZeile&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;<FONT COLOR=#0000FF>Long</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;lZeile_Z&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;<FONT COLOR=#0000FF>Long</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;iSpalte_Z&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;<FONT COLOR=#0000FF>Integer</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;vTemp_Z&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;<FONT COLOR=#0000FF>Variant</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;vTemp_S&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;<FONT COLOR=#0000FF>Variant</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;iIndx&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;<FONT COLOR=#0000FF>Long</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;iSpalte&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;<FONT COLOR=#0000FF>Long</FONT>
<FONT COLOR=#0000FF>Dim</FONT>&nbsp;rZelle&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>As</FONT>&nbsp;Range

&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Set</FONT>&nbsp;WkSh_Q&nbsp;=&nbsp;ThisWorkbook.Worksheets("Tabelle1")
&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Set</FONT>&nbsp;WkSh_Z&nbsp;=&nbsp;ThisWorkbook.Worksheets("Tabelle2")

&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>For</FONT>&nbsp;lZeile&nbsp;=&nbsp;2&nbsp;<FONT COLOR=#0000FF>To</FONT>&nbsp;WkSh_Q.Cells(Rows.Count,&nbsp;1).End(xlUp).Row
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vTemp_Z&nbsp;=&nbsp;Split(WkSh_Q.Range("A"&nbsp;&amp;&nbsp;lZeile).Value,&nbsp;Chr(10))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vTemp_S&nbsp;=&nbsp;Split(WkSh_Q.Range("B"&nbsp;&amp;&nbsp;lZeile).Value,&nbsp;Chr(10))
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>For</FONT>&nbsp;iIndx&nbsp;=&nbsp;0&nbsp;<FONT COLOR=#0000FF>To</FONT>&nbsp;<FONT COLOR=#0000FF>UBound</FONT>(vTemp_Z)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Set</FONT>&nbsp;rZelle&nbsp;=&nbsp;WkSh_Z.Columns(1).Find(What:=vTemp_Z(iIndx),&nbsp;LookAT:=xlWhole,&nbsp;_
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LookIn:=xlValues)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;<FONT COLOR=#0000FF>Not</FONT>&nbsp;rZelle&nbsp;<FONT COLOR=#0000FF>Is</FONT>&nbsp;<FONT COLOR=#0000FF>Nothing</FONT>&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lZeile_Z&nbsp;=&nbsp;rZelle.Row
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Set</FONT>&nbsp;rZelle&nbsp;=&nbsp;WkSh_Z.Rows(1).Find(What:=vTemp_S(iIndx),&nbsp;LookAT:=xlWhole,&nbsp;_
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LookIn:=xlValues)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>If</FONT>&nbsp;<FONT COLOR=#0000FF>Not</FONT>&nbsp;rZelle&nbsp;<FONT COLOR=#0000FF>Is</FONT>&nbsp;<FONT COLOR=#0000FF>Nothing</FONT>&nbsp;<FONT COLOR=#0000FF>Then</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iSpalte_Z&nbsp;=&nbsp;rZelle.Column
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WkSh_Z.Cells(lZeile_Z,&nbsp;iSpalte_Z).Value&nbsp;=&nbsp;WkSh_Q.Range("C"&nbsp;&amp;&nbsp;lZeile).Value&nbsp;&amp;&nbsp;_
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"&nbsp;-&nbsp;"&nbsp;&amp;&nbsp;WkSh_Q.Range("D"&nbsp;&amp;&nbsp;lZeile).Value
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End</FONT>&nbsp;<FONT COLOR=#0000FF>If</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>End</FONT>&nbsp;<FONT COLOR=#0000FF>If</FONT>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Next</FONT>&nbsp;iIndx
&nbsp;&nbsp;&nbsp;<FONT COLOR=#0000FF>Next</FONT>&nbsp;lZeile

<FONT COLOR=#0000FF>End</FONT>&nbsp;<FONT COLOR=#0000FF>Sub</FONT>
</Blockquote><Font Face="Courier New,FixedSys"Size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Code eingefügt mit <b><a href="http://rtsoftwaredevelopment.de/SyntaxHi.zip">Syntaxhighlighter 1.14</a></b></Font><Font Size=2></p>
Gruß Peter

Paul26_01
03.04.2012, 13:29
Hallo Peter,

das ganze sieht schonmal ganz gut aus

aber ich bräuchte noch eine kleine Verbesserung wenn du nochmal Zeit hast??

also ich habe ja das hier:

http://www10.pic-upload.de/03.04.12/jubnxsuupo1l.jpg

jetzt muss das ganze so bsp. aussehen:

2.3.102.61 - 10.144.98.82 ICMP2444
2.3.102.61 - 10.144.98.91 ICMP2444
2.3.102.61 - 10.144.98.87 ICMP2444

2.3.102.62 - 10.144.98.82 ICMP2444
2.3.102.62 - 10.144.98.91 ICMP2444
2.3.102.62 - 10.144.98.87 ICMP2444

2.3.102.63 - 10.144.98.82 ICMP2444
2.3.102.63 - 10.144.98.91 ICMP2444
2.3.102.63 - 10.144.98.87 ICMP2444

also quasi jede IP-Adresse die in Spalte A steht bekommt alle IP-Adresse aus Spalte B mit Port und Dienst
In Destination können auch weniger IP-Adressen als in Source stehen da hänge ich auch gerade noch :p

quasi jeder mit jedem, da ich nicht genau weiß was jeder Code macht eventuell eine kleine Erklärung??? - wäre echt nett =)

danke schonmal

gruß

pefeu
03.04.2012, 15:59
Hallo Paul,

dann sieh Dir die beigefügte Mappen-Version an.
Vielleicht ist das die gewünschte Lösung.

Gruß Peter

Paul26_01
03.04.2012, 19:19
Guten Abend pefeu,

sieht soweit ich das jetzt erstmal sehen kann echt schon fast perfekt aus =)
eine Kleinigkeit habe ich noch

kann ich dir mal per PM oder Email meine Datei schicken??? Möchte diese Zwecks kompletter IP-Adressen nicht veröffentlichen


gruß

pefeu
03.04.2012, 20:12
Hallo Paul,

normalerweise sollten Lösungen allen zugänglich hier im Forum öffentlich behandelt werden.
Aber schick mir Deine Mappe, ich werde sehen, was ich für Dich tun kann.

Gruß Peter