Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
932to936
932to936
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

wenn leer, dann -VBA-

wenn leer, dann -VBA-
04.12.2007 13:54:00
Wolfgang
Hallo,
mit untenstehendem Auszug aus einem Code wird bewirkt, dass die jeweilige Zelle unter der besagten Überschrift sowie Nachbarzelle in ein Textfenster eines UF übernommen werden. Wie kann ich den Code ergänzen, dass wenn die Zelle unter "KundTelekommuTelVorwahl" leer ist, alternativ dann die Zelle unter der Überschrift "KundTelekommuMobilVorwahl" sowie dann auch der Nachbarzelle übernommen wird?
Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang
'Telefonnummer
Set rng = .Rows(1).Find("KundTelekommuTelVorwahl", LookAt:=xlWhole)
If Not rng Is Nothing Then
txtVorwahl.Text = "0" & rng.Offset(1, 0).Text & "/" & rng.Offset(1, 1).Text
End If

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wenn leer, dann -VBA-
04.12.2007 14:05:00
otto
Hi,
ich weiß nicht in welcher Spalte das steht, wenn es z.B. die übernächste nach "KundTelekommuTelVorwahl" ist, dann:
...
txtVorwahl.Text = "0" & rng.Offset(1, 2).Text & "/" & rng.Offset(1, 3).Text
...
Offset(0,1) sagt z.B. aus: 0=Zeile in der der Cursor steht, 1=nächste Spalte nach dem Cursor
Gruß
otto

AW: wenn leer, dann -VBA-
04.12.2007 14:34:37
Wolfgang
Hallo Otto,
die Nr. für Mobil steht tatsächlich 3 bzw. 4 Spalten weiter; wie verpacke ich das nur in dem Code, dass diese Nr. nur zu nehmen ist, wenn unter der Überschrift "KundTelekommuTelVorwahl" sich kein Text befindet? - Ist darin Text enthalten, soll in dem Moment die Festnetz-Nr. genommen werden.
Danke und Gruß
Wolfgang

Anzeige
AW: wenn leer, dann -VBA-
04.12.2007 15:34:00
Erich
Hallo Wolfgang,
probier mal

Dim intS As Integer
intS = WorksheetFunction.Match("KundTelekommuTelVorwahl", Rows(1), 0)
If IsEmpty(Cells(2, intS)) Then _
intS = WorksheetFunction.Match("KundTelekommuMobilVorwahl", Rows(1), 0)
txtVorwahl.Text = "0" & Cells(2, intS).Text & "/" & Cells(2, intS + 1).Text

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: wenn leer, dann -VBA-
04.12.2007 16:55:12
Wolfgang
Hallo Erich,
Danke für die Rückmeldung; das klappt irgendwie nicht, es folgt eine Fehlermeldung "Die Matcheigenschaft des WorkSheet-Function-Objektes kann nicht zugeordnet werden"; muß ich evtl. noch grundsätzlich etwas verändern? - Danke erneut für die Rückmeldung.
Gruß - Wolfgang

Anzeige
AW: wenn leer, dann -VBA-
04.12.2007 19:09:00
Erich
Hallo Wolfgang,
der Code geht davon aus, dass in Zeile 1 die beiden Überschriften vorkommen. Ist das bei dir nicht so?
Je nachdem, ob dann in Zeile 2, Spalte KundTelekommuTelVorwahl etwas steht oder nicht,
wird der Text vom Festnetz oder von Mobil übertragen. Hier eine Beispielmappe:
https://www.herber.de/bbs/user/48228.xls
Probier mal die Anzeige mit leerer und gefüllter Zelle C2.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: wenn leer, dann -VBA-
04.12.2007 20:01:43
Wolfgang
Hallo Erich,
erneut herzlichen Dank für Deine Rückmeldung und Überlassung einer Mustermappe. Das funktioniert tadellos und auch die Voraussetzungen (Überschriften in Zeile1) sind bei mir so. Mir ist dabei allerdings aufgefallen, dass ich Deinen Code versucht habe, in einen bestehenden Code zu integrieren. Der Code erstreckt dabei auf die Suche über 3 Tabellenblätter (Daten, Daten1 und Daten2).Ich werde morgen im Büro den Code auch 'mal getrennt einbauen und einen Verweis darauf setzen und mich auf jeden Fall noch wieder erneut melden. In dem Sinne einen schönen Abend noch und nochmals herzlichen Dank.
Gruß
Wolfgang

Anzeige
AW: wenn leer, dann -VBA-
04.12.2007 21:25:21
Gerd
Hallo Wolfgang,
ohne Objektverweis greift der Code von Erich immer auf das AktiveSheet zu.
Daher die Fehlermeldung bei dir.

Private Sub UserForm_Activate()
Dim intS As Integer
With Worksheets("Daten")
intS = WorksheetFunction.Match("KundTelekommuTelVorwahl", .Rows(1), 0)
If IsEmpty(Cells(2, intS)) Then _
intS = WorksheetFunction.Match("KundTelekommuMobilVorwahl", .Rows(1), 0)
txtVorwahl.Text = "0" & .Cells(2, intS).Text & "/" & .Cells(2, intS + 1).Text
End With
End Sub


Gruß Gerd

Danke Erich und Gerd
05.12.2007 07:18:00
Wolfgang
Hallo Erich,
Hallo Gerd,
nach den Ergänzungen läuft der Code nun prima. Dafür recht herzlichen Dank !
Gruß - Wolfgang

Anzeige
AW: Ergänzung
05.12.2007 19:53:00
Gerd
Hallo Wolfgang,
falls Du es noch nicht selbst bemerkt hast. In dieser Zeile
If IsEmpty(Cells(2, intS)) Then _
gehört vor "Cells" auch noch ein Punkt.
Gruß Gerd

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige