Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Schleife mit find

Frage Entwicklung VB for Applications

Mitglied: Philippe-M

Philippe-M (Level 1) - Jetzt verbinden

29.09.2009, aktualisiert 13:28 Uhr, 3465 Aufrufe, 4 Kommentare

Hallo zusammen,

ich möchte aus zwei Registern Daten auslesen.

Also im ersten register1 steht zum Beispiel:
Key 
hker 
ewrwe 
ccc 
dsfrewr 
zzz 
ggg
Im zweiten register2
Key	Text 
123	zuzuz 
dddd	jkjk 
fff	sss 
ccc	ssssss 
zzzz	ggg 
zzz	jkhkg 
ggg	mmm
Es soll nun die Textzeile im register2 zu den jeweiligen Keynamen im register1 kopiert werden.

Sie soll am Schluss so aussehen:
Key		 
hker	Keine Daten vorhanden	 
ewrwe	Keine Daten vorhanden	 
ccc	Daten vorhanden	ssssss 
dsfrewr	Keine Daten vorhanden	 
zzz	Daten vorhanden	jkhkg 
ggg	Daten vorhanden	mmm
Das funktioniert auch soweit. Das Problem ist nur, dass ich folgendes Ergebnis bekomme:

Key		 
hker	Keine Daten vorhanden	 
ewrwe	Keine Daten vorhanden	 
ccc	Daten vorhanden	sss 
dsfrewr	Keine Daten vorhanden	 
zzz	Daten vorhanden	ggg 
ggg	Daten vorhanden	jkhkg
Also eine Zeile verschoben.

Des weiteren möchte ich nicht das ganze Dokument durchsuchen.
Das verschieben der Zeile hat glaube ich mit der wenn-Formel zu tun. Die nimmt einen Falschen wert. Wie kann ich die Wenn-Formel umschreiben, damit ich dann den Wert, der neben dem gleichen Key steht bekomme?

So sieht ein Teil meines Scriptes aus:

Sub Makrosuche()

Dim wsnew As Worksheet
Dim wsnew2 As Worksheet

Dim bereichblatt2 As Range
Dim suchwert As String
Dim SpalteA As Long
Dim hochzaehlen As Long


'Name der 1.Tabelle,
Sheets(1).Name = "zusammengefügt"
Sheets(2).Name = "unsortiert"
Sheets(1).Select
Set wsnew = ActiveWorkbook.Sheets("zusammengefügt")

'Spalte vom Text
SpalteA = 1

'Name der 2.Tabelle
Set wsnew2 = ActiveWorkbook.Sheets("unsortiert")




'
' Schleife beginnt
'




For hochzaehlen = 2 To wsnew.Cells(wsnew.Rows.Count, 1).End(xlUp).Row
suchwert = wsnew.Cells(hochzaehlen, SpalteA)




Set bereichblatt2 = wsnew2.Cells.Find(What:=suchwert, LookIn:=xlValues, LookAt:=xlPart)



If Not bereichblatt2 Is Nothing Then
wsnew.Cells(hochzaehlen, SplateA + 2) = "Daten vorhanden"



Else
wsnew.Cells(hochzaehlen, SplateA + 2) = "Keine Daten vorhanden"
End If


'
' Wenn-Formel
'



Range("C2").Select
ActiveCell.FormulaR1C1 = _
"=IF(RC[-1]=""Daten vorhanden"",unsortiert!RC[-1],"""")"
Selection.AutoFill Destination:=Range("C2:C7"), Type:=xlFillDefault
Range("C2:C7").Select


Next hochzaehlen




Sheets(1).Select
Range("A10").Select

'
' Datenblatt verstecken
'
'Sheets("unsortiert").Visible = xlVeryHidden



'
' Makro löschen
'
'Set VBComp = ThisWorkbook.VBProject.VBComponents("Modul1")
'ThisWorkbook.VBProject.VBComponents.Remove VBComp



End Sub

















Habt ihr eine Idee?

Vielen Dank im voraus
Mitglied: 76109
29.09.2009 um 13:58 Uhr
Hallo Philippe_M!

Die Suchfunktion funktioniert in etwa so:
01.
Sub test() 
02.
    Set ws1 = Sheets(1) 
03.
    Set ws2 = Sheets(2) 
04.
 
05.
    For i = 2 To ws1.Cells(ws1.Rows.Count, 1).End(xlUp).Row 
06.
        Set Found = ws2.Range("A:A").Find(What:=ws1.Cells(i, 1), LookIn:=xlValues, LookAt:=xlWhole) 
07.
     
08.
        If Found Is Nothing Then 
09.
            ws1.Cells(i, 2) = "Keine Daten vorhanden" 
10.
        Else 
11.
            ws1.Cells(i, 2) = "Daten vorhanden":  ws1.Cells(i, 3) = Found.Offset(0, 1) 
12.
        End If 
13.
    Next 
14.
End Sub
Gruß Dieter
Bitte warten ..
Mitglied: Philippe-M
29.09.2009 um 14:27 Uhr
Hallo Dieter,

dein script funktioniert auch. Vielen dank dafür. Weißt du vielleicht auch, wie ich es schaffe, dass falls Daten vorhanden sind, er diese auf das ws1 übernimmt?

Also zum Beispiel:

ws1
A1 B2
aaa

ws2
A1
zzz skldjas
aaa Hallo

Ich will jetzt in ws1 nach der Info Daten vorhanden diesen Wert (aaa) stehen haben. Ich hab das mit der wenn-Formel versucht. Leider geht das nur, wenn der wert auch in der gleichen Zelle wie in ws1 steht.

Dank nochmal im voraus
Bitte warten ..
Mitglied: Philippe-M
29.09.2009 um 14:29 Uhr
Sorry Dieter,

das war ja schon mit drin.

Danke
Bitte warten ..
Mitglied: 76109
29.09.2009 um 14:55 Uhr
Hallo Philippe_M!

Danke, dann bin ich ja beruhigt

Ich habe Den Text X-mal durchgelesen und dachte ich steh im Wald.

Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch Schleife als FOR-SCHLEIFE
gelöst Frage von mp2711Batch & Shell2 Kommentare

Mit den FOR-Schleifen habe ich mich leider bislang zu selten auseinander gesetzt, aber da ich sonst gerade nicht weiter ...

Microsoft Office
Vereinfachen einer Schleife
Frage von Jens1975Microsoft Office1 Kommentar

Hallo, ich bin neu und versuche mich jetzt mit VBA Ich möchte die Funktion Autofill durch eine Schleife ersetzen. ...

Netzwerkprotokolle
STP und Schleifen
gelöst Frage von ottokarlNetzwerkprotokolle20 Kommentare

Hallo, ich habe eine allgemeine Frage. Situation: Ich nehme ein Kabel und stecke es im Switch z.B. in Port ...

Entwicklung
PowerShell - Schleifen
gelöst Frage von 119785Entwicklung8 Kommentare

Hallo Leute, ich habe hier eine Aufgabe und brauche mal einen kleinen Tip. Entweder habe ich eine Denkbloacke oder ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 19 StundenBatch & Shell8 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 21 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 1 TagMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 1 TagSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...

Windows Server
Sichere Remote Desktop Verbindung wie?
gelöst Frage von nuss33Windows Server11 Kommentare

Hallo zusammen, eins vorweg: Ich besitze einen privaten Windows Server 2008 R2 zu Hause im Netzwerk er wird nicht ...