Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Makro - Definitionsproblem





Frage

Hier mein Makro Sub Suche() Eingabe = ThisWorkbook.Sheets("Master").Range("G6").Value If Not IsNumeric(Eingabe) Then MsgBox ("Nicht verfuegbar"), 48, "Ueberpruefung" GoTo Abbruch End If 'Formular kopieren Sheets("Formular").Select Application.CutCopyMode = False Sheets("Formular").Copy After:=Sheets(3) ActiveSheet.Name = Eingabe 'Suche in Datenbank ThisWorkbook.Sheets("Datenbank").Activate ActiveSheet.[A1].Select With ActiveCell While ActiveCell.Value <> "" ActiveCell.Offset(1, 0).Select If ActiveCell.Value = Eingabe Then 'Daten der eingegebenen Nummer in Formular eintragen Worksheets(Eingabe).Range("F5").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F7").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F9").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F11").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F13").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F15").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F17").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F19").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F21").Value = ActiveCell.Value ActiveCell.Offset(0, 1).Select Worksheets(Eingabe).Range("F23").Value = ActiveCell.Value ThisWorkbook.Sheets(Eingabe).Activate Exit Sub End If Wend End With Abbruch: End Sub ---- Die Eingabe ist eine Nummer. Habe 2 Fragen: 1. Diese Nummer soll genau 6 Stellen haben. Wie definiere dich das genau? IsNumeric gibt ja nur an, dass es sich um eine Zahl handeln soll. 2. Ab hier (Worksheets(Eingabe).Range("F5").Value = ActiveCell.Value) bekomme ich eine Fehlermeldung. Excel erkennt das Worksheet nicht. Wenn ich allerdings mit der Maus ueber "Eingabe" fahre, bekomme ich die Nummer angezeigt. Gebe ich die Nummer von Hand in das Makro ein (also z.B. Worksheets(123456).Range("F5").Value = ActiveCell.Value) Dann funktioniert es. Verstehe nicht ganz, wieso Excel dies nicht versteht. Kann mir jemand helfen. Tausend dank.

Antwort 1 von Guenter

Hallo,

zu 1.
wenn die Zahl 6 Stellen hat, liegt sie zwischen 999 999 und 100 000. Deshalb würde ich eine andere IF-Abfrage einbauen,
z.B. If Eingabe > 999999 Or Eingabe < 100000 Then

Gruß
Günter


Antwort 2 von Guenter

Hallo,

zu 2.

vielleicht liegt das an den verschiedenen Typen von Variablen für Eingabe, Zahl (Long) oder Text(String).

Gruß
Günter


Antwort 3 von J@germeister

@Guenter

Also muss Zahl zwischen 99.999 und 1.000.000 liegen. Glaube du hast dich als bei den Neunern um ne Stelle vertan.

Kann mir das mit den Variabeln ein bisschen genau erklaeren. Bzw. nen Loesungsvorschlag geben. Beschaeftige mich erst seit ner Woche mit VBA.

Vielen Dank

Antwort 4 von Guenter

Hallo,

ja, das ist mir später auch eingefallen mit den Zahlen, aber Du hast schon gemerkt, was ich meine.

Mit den Variablen: Ich hatte bisher noch keine Zeit gehabt, meinen Vorschlag zu testen.
Ich vermute, einmal ist Eingabe eine Zahl in Master G6, auf der anderen Seite ist Eingabe ein Text, Name des neuen Arbeitsblattes.
Mach doch mal folgendes:

NeuesBlatt = Eingabe
ActiveSheet.Name = NeuesBlatt

Dann weiter unten:
Worksheets(NeuesBlatt).Range("F5"). ...

alles ändern.

Gruß
Günter

Antwort 5 von J@germeister

Danke. Werde es mal ausprobieren. Aber wenn ich mit der Maus ueber Eingabe fahre dann wird mir die Nummer angezeigt. Naja, koenntest recht haben. Probiere es spaeter mal aus.

Tausend Dank

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: