vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Suchen von Zellwerten 
Autor: armina
Datum: 05.12.16 18:46

Hallo,

habe Problem wo ich nicht weiterkomme, ich bitte um Hilfe.

Bei Doppelklick auf eine Zelle im Sheet "Tourenkalender" im Bereich von C5:Y37 (hier ist ein Kalender mit Cellwert des Datums)

soll der angeklickte Zellwert (Datum) in 2 weiteren Sheets ("Wandertouren" und "Radtouren" ) gesucht werden.

Bei "Wandertouren" steht das Datum in A39:A1000, und bei "Radtouren" in D131000.

Die gefundene Zelle (Datum) soll aktiviert werden.

Vielen Dank im Voraus!

Gruß armin
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Suchen von Zellwerten 
Autor: effeff
Datum: 07.12.16 10:35

Das folgende Beispiel geht davon aus, dass Deine gesuchten Daten in Tabellenblatt "Tabelle1" enthalten sind und auf den beiden Tabellenblättern "Tabelle2" und "Tabelle3" gefunden werden sollen!

Als Makro im Tabellenobjekt:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'MsgBox (ActiveCell.Value)
 
Dim ToFind As String
Dim Row As Integer
Dim Col As Integer
 
ToFind = ActiveCell.Value
 
Dim foundCell As Object
 
Set foundCell = Sheets("Tabelle2").Range("A1:Z2000").Find(What:=ToFind)
 
If Not foundCell Is Nothing Then
Row = foundCell.Row
Col = foundCell.Column
Sheets("Tabelle2").Activate
Sheets("Tabelle2").Cells(Row, Col).Select
Else
Exit Sub
End If
 
Set foundCell = Sheets("Tabelle3").Range("A1:Z2000").Find(What:=ToFind)
 
If Not foundCell Is Nothing Then
Row = foundCell.Row
Col = foundCell.Column
Sheets("Tabelle3").Activate
Sheets("Tabelle3").Cells(Row, Col).Select
Else
Exit Sub
End If
 
End Sub

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Suchen von Zellwerten 
Autor: armina
Datum: 07.12.16 15:39

Hallo,
vielen Dank für die Bearbeitung meiner Aufgabe.
Der Code klappt erst mal ganz gut.ich habe allerdings folgendes geändert: Dim ToFind As Date
Dim Row As Date
Dim Col As Date
und den Suchbereich eingeengt
auf die Datumsspalten.
Allerdings habe ich noch ein Problem.
Es wird nur immer der erste Teil des Codes abgearbeitet.
Also bezieht sich der Code zuerst auf das Sheet2, sucht und findet er das Datum in Sheet2.
Lasse ich im Sheet3 ein Datum suchen klappt das nicht.
Ändere ich den Code mit Bezug auf Sheet3 am Code Anfang,sucht und findet er das Datum in Sheet3.
Also, die Prozedur wird immer nur im ersten Teil abgearbeitet, als wäre der zweite Teil der Abfrage
nicht vorhanden.
Es wäre schön, wenn dies noch abgeändert werden könnte.
Vielen Dank und Grüße von armin
Nachtrag
Es wäre gut wenn der Bereich der aktiven Zelle im Sheet1 einggrenzt werden könnte, auf A3:Y38.

Beitrag wurde zuletzt am 07.12.16 um 15:58:31 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Suchen von Zellwerten 
Autor: effeff
Datum: 08.12.16 13:41

Ich habe Deine Antwort nicht ganz verarbeiten können. Was heißt "bezieht sich auf Sheet2" und "bezieht sich auf Sheet3"? Kann das gesuchte Datum in beiden Blättern sein oder ggf. auch nur in einem davon? Damit dann beide Teile abgearbeitet werden können, musst Du nur das Exit Sub und das Else entfernen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ToFind As Date
Dim Row As Integer
Dim Col As Integer
 
ToFind = ActiveCell.Value
 
Dim foundCell As Object
 
Set foundCell = Sheets("Tabelle2").Range("A1:Z2000").Find(What:=ToFind)
 
If Not foundCell Is Nothing Then
Row = foundCell.Row
Col = foundCell.Column
Sheets("Tabelle2").Activate
Sheets("Tabelle2").Cells(Row, Col).Select
End If
 
Set foundCell = Sheets("Tabelle3").Range("A1:Z2000").Find(What:=ToFind)
 
If Not foundCell Is Nothing Then
Row = foundCell.Row
Col = foundCell.Column
Sheets("Tabelle3").Activate
Sheets("Tabelle3").Cells(Row, Col).Select
End If
 
End Sub
Zitat:


Es wäre gut wenn der Bereich der aktiven Zelle im Sheet1
einggrenzt werden könnte, auf A3:Y38.


Du meinst, Du möchtest alle anderen Zeilen und Spalten ausblenden?

Z. B. so:

Sheets("Tabelle1").Columns("F:XFD").EntireColumn.Hidden = True
Sheets("Tabelle1").Rows("15:1048576").EntireRow.Hidden = True

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Suchen von Zellwerten 
Autor: Blackbox
Datum: 08.12.16 18:30

Hallo,

ich finde du solltest dich mit dem Name-Objekt (Mnomics-Object) von Excel anfreunden. Ist in Excel gut dokumentiert. Du sparst sicher ein paar Zeilen VBA-Code
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel