Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 3445 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 ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
Schleife mit todos CMD

Frage von TommyDerWalker zum Thema Batch & Shell ...

Batch & Shell
gelöst Fehler in Schleife (2)

Frage von miczar zum Thema Batch & Shell ...

Microsoft Office
Internext explorer about:blank auslesen, schleife bis gelanden (1)

Frage von thomas1972 zum Thema Microsoft Office ...

Batch & Shell
gelöst CMD: icacls in for-Schleife (2)

Frage von Lowrider614 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...