Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wort in Spalte suchen und Zeilennr, als variable

Forumthread: Wort in Spalte suchen und Zeilennr, als variable

Wort in Spalte suchen und Zeilennr, als variable
26.03.2018 13:50:45
Felix
Hallo zusammen,
Ich möchte gerne meine variable so bestimmen dass ich später in meinem Skript die Variable Haus verwenden kann als Zeile in der das wort Haus in Spalte A steht.
Beispiel: In Zeile 16 steht das Wort Haus
und ich möchte in meinem Makro die variable dann verwenden so dass bei

.Cells(LoI, 19).Formula = "=J" & Haus "/100"
der Wert J16/100 heraus kommt.
Vielen Dank
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wort in Spalte suchen und Zeilennr, als variable
26.03.2018 14:00:40
Klexy
Dim Haus As Integer
Haus = Range("A16").Row
AW: Wort in Spalte suchen und Zeilennr, als variable
26.03.2018 14:11:26
UweD
Hallo
ist denn sichergestellt, das Haus nur 1x vorkommt?
Option Explicit 
 
Sub dgfgf() 
    Dim LoI As Integer, SuchWort As String, SP As Integer 
    SuchWort = "Haus" 
    SP = 1 'Spalte A 
    With Sheets("Tabelle1") 
        If WorksheetFunction.CountIf(.Columns(1), SuchWort) > 0 Then 
            LoI = WorksheetFunction.Match(SuchWort, .Columns(1)) 
            .Cells(LoI, 19).FormulaR1C1 = "=RC[-9]/100" 
        Else 
            MsgBox "Nicht gefunden" 
            Exit Sub 
        End If 
     
    End With 
     
End Sub 

LG UweD
Anzeige
AW: Wort in Spalte suchen und Zeilennr, als variable
26.03.2018 15:23:16
Peter(silie)
Hallo,
wenn die Sachen ausschließlich im Code hinterlegt seien sollen,
dann ist ein Enum was du suchst.
Ansonsten würde ich zu Get/Let Methoden wechseln.
Hier beispiele:

Option Explicit
Private Enum CustomRows
Hase = 1
Hund = 4
Haus = 16
Harald = 20
Herz = 22
Husten = 50
End Enum
Sub a()
'.Cells((LoI, 19).Formula = "=J" & CustomRows.Haus & "/100"
Debug.Print CustomRows.Harald
Debug.Print CustomRows.Haus
Debug.Print CustomRows.Husten
Debug.Print CustomRows.Herz
End Sub

Beispiel 2:

Option Explicit
Private haus_   As Long
Private harald_ As Long
Private herz_   As Long
Private Property Get Haus() As Long
Haus = haus_
End Property
Private Property Let Haus(ByVal value_ As Long)
haus_ = value_
End Property
Private Property Get Harald() As Long
Harald = harald_
End Property
Private Property Let Harald(ByVal value_ As Long)
harald_ = value_
End Property
Private Property Get Herz() As Long
Herz = 22
End Property
Private Property Let Herz(ByVal value_ As Long)
herz_ = value_
End Property
Sub a()
'.Cells((LoI, 19).Formula = "=J" & Haus & "/100"
Haus = 16
Harald = 20
Herz = 22
Debug.Print Haus
Debug.Print Harald
Debug.Print Herz
End Sub

Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Wort in Spalte suchen und Zeilennummer als Variable definieren


Schritt-für-Schritt-Anleitung

  1. Variable definieren: Lege eine Integer-Variable an, um die Zeilennummer zu speichern. Beispiel:

    Dim Haus As Integer
  2. Wort suchen: Verwende die Match-Funktion, um das Wort „Haus“ in Spalte A zu finden. Hierbei wird die Zeilennummer in der Variable Haus gespeichert:

    Haus = WorksheetFunction.Match("Haus", Sheets("Tabelle1").Columns(1), 0)
  3. Formel zuweisen: Nutze die gefundene Zeilennummer, um eine Formel in eine andere Zelle zu schreiben:

    .Cells(Haus, 19).Formula = "=J" & Haus & "/100"

Häufige Fehler und Lösungen

  • Fehler: "Nicht gefunden"
    Ursache: Das Wort „Haus“ ist nicht in der angegebenen Spalte vorhanden.
    Lösung: Stelle sicher, dass das Wort tatsächlich in Spalte A vorhanden ist. Du kannst die CountIf-Funktion verwenden, um sicherzustellen, dass das Wort existiert:

    If WorksheetFunction.CountIf(.Columns(1), SuchWort) > 0 Then
      ' Fortfahren
    Else
      MsgBox "Nicht gefunden"
    End If
  • Fehler: Laufzeitfehler 9 (Index außerhalb des gültigen Bereichs)
    Ursache: Das angegebene Arbeitsblatt existiert nicht.
    Lösung: Überprüfe den Namen des Arbeitsblatts, das du verwendest.


Alternative Methoden

  • Enum verwenden: Wenn du mehrere feste Zeilen hast, kann es sinnvoll sein, ein Enum zu verwenden. Beispiel:

    Private Enum CustomRows
      Haus = 16
      ' Weitere Werte
    End Enum
  • Property Get/Let: Eine weitere Möglichkeit ist die Verwendung von Property Get und Property Let, um die Werte zu kapseln und zu verwalten. Beispiel:

    Private Property Get Haus() As Long
      Haus = 16
    End Property

Praktische Beispiele

  1. Einfache Suche:

    Sub SucheUndFormel()
       Dim Haus As Integer
       Haus = WorksheetFunction.Match("Haus", Sheets("Tabelle1").Columns(1), 0)
       Sheets("Tabelle1").Cells(Haus, 19).Formula = "=J" & Haus & "/100"
    End Sub
  2. Verwendung von Enum:

    Sub BeispielMitEnum()
       Dim Zeile As Integer
       Zeile = CustomRows.Haus
       Sheets("Tabelle1").Cells(Zeile, 19).Formula = "=J" & Zeile & "/100"
    End Sub

Tipps für Profis

  • Fehlersuche: Nutze Debug.Print, um den Wert der Variablen während der Ausführung zu überprüfen.
  • Namen definieren: Arbeite mit benannten Bereichen, um die Lesbarkeit deines Codes zu verbessern.
  • Code modularisieren: Teile deinen Code in kleinere, wiederverwendbare Subroutinen auf, um die Wartbarkeit zu erhöhen.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass „Haus“ nur einmal vorkommt?
Verwende die CountIf-Funktion, um die Anzahl der Vorkommen zu überprüfen. Wenn es größer als 1 ist, handle entsprechend.

2. Was passiert, wenn das Wort nicht gefunden wird?
In diesem Fall kannst du eine Fehlermeldung anzeigen, um den Benutzer zu informieren, dass das Wort nicht vorhanden ist. Nutze dafür die MsgBox-Funktion.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige