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

Zelleninhalt suchen und den Inhalt von 2 Spalten daneben ausgeben

Frage Entwicklung VB for Applications

Mitglied: poopie1971

poopie1971 (Level 1) - Jetzt verbinden

09.02.2013 um 15:17 Uhr, 8851 Aufrufe, 4 Kommentare

Hallo Zusammen,
ich habe ein Problem. Ich möchte gerne in Excel mit einem Makro in einer Tabellenspalte nach einem Wort (einer beruflichen Tätigkeit) suchen, welches in mehreren Zeilen vorkommen kann. Wenn da Wort gefunden wurde, dann soll der Zelleninhalt von den beiden danebenliegenden Zellen (Name und Vorname) in einem neuen Tabellenblatt ausgegeben werden und dann weitergesucht werden bis zum Ende des Tabellenblattes. Im neuen Tabellenblatt soll alles in Zeilen untereinander angeordnet werden, selbstverständlich ohne Freizeilen. Eigentlich ist es ein Filtern, allerdings soll das ganze ohne Filter sondern per Makro angewendet werden.
Der Suchbegriff soll über eine Messagebox vorher abgefragt werden.

Kann mir hier jemand helfen?

Danke und viele Grüße vom Poopie
Mitglied: Pjordorf
09.02.2013 um 15:54 Uhr
Hallo,

Zitat von poopie1971:
allerdings soll das ganze ohne Filter sondern per Makro angewendet werden.
OK. Wie weit bist du denn? Wo im VBA Code steckst du fest bzw. kommst du nicht weiter? Den Code hier mit Coda Tags posten.

Gruß,
Peter
Bitte warten ..
Mitglied: poopie1971
09.02.2013 um 16:21 Uhr
Ich habe noch garnicht angefangen weil ich nicht weiß was da zu tun ist.
Ein Beispiel Code wäre nicht verkehrt.
Bitte warten ..
Mitglied: bastla
09.02.2013 um 19:20 Uhr
Hallo poopie1971!

Etwa so:
01.
Sub Filtern() 
02.
Quelle = "Tabelle1" 'Name der Tabelle mit den Quelldaten 
03.
QSpalte = "B" 'Spalte, in welcher gesucht wird 
04.
Spaltenanzahl = 2 'Anzahl daneben liegender Spalten, aus denen die Inhalte in die Zieldatei übertragen werden sollen 
05.
 
06.
Ziel = "Tabelle2" 'Tabellenname für gefilterte Daten 
07.
AbZZeile = 2 'Eintragen der gefilterten Daten ab dieser Zeile 
08.
ZSpalte = "A" 'Eintragen der gefilterten Daten ab dieser Spalte 
09.
 
10.
Do Until Suche <> "" 'keine leere Eingabe akzeptieren 
11.
    Suche = InputBox("Bitte den Suchbegriff eingeben (oder mit Eingabe von 'Ende' abbrechen):", "Suchbegriff") 
12.
Loop 
13.
If LCase(Suche) = "ende" Then Exit Sub 'Abbruch 
14.
 
15.
Set Q = Worksheets(Quelle) 
16.
Set Z = Worksheets(Ziel) 
17.
ZZeile = AbZZeile 'Startzeile in Zieldatei setzen 
18.
 
19.
With Q.Columns(QSpalte) 
20.
    Set Gefunden = .Find(Suche, LookIn:=xlValues) 'gesamte Spalte der Quelldatei durchsuchen 
21.
    If Not Gefunden Is Nothing Then 'nur wenn der Suchbegriff auch gefunden wurde, die folgenden Schritte durchführen 
22.
        Erste = Gefunden.Address 'erste Fundstelle merken 
23.
        Do 'für alle Fundstellen 
24.
            Z.Cells(ZZeile, ZSpalte).Resize(1, Spaltenanzahl) = Gefunden.Offset(0, 1).Resize(1, Spaltenanzahl).Value 'Werte der Nachbarzellen übertragen 
25.
            ZZeile = ZZeile + 1 'Zeilennummer der Zieltabelle erhöhen 
26.
            Set Gefunden = .FindNext(Gefunden) 'nächste Fundstelle suchen 
27.
        Loop Until Gefunden.Address = Erste 'bis wieder erste Fundstelle gefunden wird (= alle erledigt) 
28.
    End If 
29.
End With 
30.
MsgBox "Fertig." 
31.
End Sub
Das "Drumherum" (zB vorweg Zieltabelle löschen, Spaltenüberschriften, etc) überlasse ich Dir ...

Grüße
bastla

P.S.: Ich hoffe es ist ok, dass ich für die Eingabe keine Messagebox verwendet habe ...
Bitte warten ..
Mitglied: poopie1971
10.02.2013 um 20:32 Uhr
Hallo bastla,
Dein Tip war perfekt. Ich habe ihn noch etwas modifiziert.

Danke vielmals.
Grüße
Poopie
Bitte warten ..
Ähnliche Inhalte
Datenbanken
gelöst T-SQL: Inhalt verschiedener Spalten in eine Spalte schreiben (2)

Frage von Suilven zum Thema Datenbanken ...

Microsoft Office
Excel Nachfrage: Datum aus Spalte ausgeben (2)

Frage von PronMaster zum Thema Microsoft Office ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Linksys wrt1200ac v2 mit dd-wrt: keine vlan-einstellungen im GUI (15)

Frage von Pixi123 zum Thema Router & Routing ...

E-Business
Wo tragt ihr eure privaten Termine ein? (13)

Frage von honeybee zum Thema E-Business ...

Entwicklung
gelöst Tipp für Anfänger- Wie würdet ihr automatischen Mailversand umsetzen? (12)

Frage von Cloudyme zum Thema Entwicklung ...

Windows Server
Terminalserver starten willkürlich neu (12)

Frage von thaefliger zum Thema Windows Server ...