Herbers Excel-Forum - das Archiv
Eingabemaske
Informationen und Beispiele zu den hier genannten Dialog-Elementen:

|
Betrifft: Eingabemaske
von: Lena
Geschrieben am: 30.11.2003 13:06:39
Hier noch eine Frage für meine Experten,
ich habe eine Tabelle, wobei in einer Spalte umsatz steht, daneben möchte in eine neue Spalte aufmachen mit Umsatz in 1000.
Jetzt ist in meiner Umsatzspalte aber an manchen wenigen Stellen Text, der per Hand umgerechnet werden soll. Es soll also eine Box auftauchen, wenn mein Makro an der Stelle ist und sagen: "in dieser Zelle steht keine Zahl, was soll den in die neben stehende Zelle eingetragen werde?" Und dann eine Eingabebox, wo der Anwender dann den Text für die Nachbarzelle eingeben kann, der dann dort ausgegeben wird. Dann läuft das Makro weiter.Geht so was?
Liebe Grüße
Lena
Betrifft: AW: Eingabemaske
von: PeterW
Geschrieben am: 30.11.2003 13:14:25
Hallo Lena,
leider schreibst du nicht, für welche Spalte das gelten soll. Im Prinzip so:
For Zähler = ErsteZeile to LetzteZeile
If Not Isnumeric(Zähler, Spalte) then
MsgBox "Eingabe nötig"
Cells(Zähler, Spalte + 1) = Inputbox(DeinWert)
Else
Cells(Zähler, Spalte + 1 ) = Umsatz in 1000
Endif
Next
Gruß
Peter
Betrifft: AW: Eingabemaske
von: Nepumuk
Geschrieben am: 30.11.2003 13:20:29
Psssst Peter,
das geht nicht: "If Not Isnumeric(Zähler, Spalte) then" (fehlt wohl Cells)
Gruß
Nepumuk
Betrifft: AW: Eingabemaske
von: PeterW
Geschrieben am: 30.11.2003 13:24:25
Hallo Nepumuk,
hast Recht, das kommt davon, wenn man nur ein mögliches Prinzip beschreiben will und auf getesteten Code verzichtet. ;-)
Gruß
Peter
Betrifft: AW: Eingabemaske
von: Lena
Geschrieben am: 30.11.2003 13:29:35
Hallo ihr beiden,
das ist schon super.
Ich habe vor allen das mit der Inputbox gebraucht. Nur wäre es noch super wenn mir die Inputbox markiert oder sagt welche Zelle gerade gemeint ist. Ich habe versucht das inder MSGbox durch angabe des "i"s zumachen, aber da kommt eine Fehlermeldung.
Hier meine code:
Sub lena()
i = -1
Do While i <= 5
i = i + 1
If Not IsNumeric(Range("a2").Offset(i, 0)) Then
Beep
MsgBox [("Hier in Zeile steht keine Zahl, was soll denn in nachbarzelle eingetragen werden?!")]
Range("a2").Offset(i, 1) = InputBox(DeinWert)
Else
Range("a2").Offset(i, 1) = Range("a2").Offset(i, 0) / 1000
End If
Loop
End Sub
Betrifft: AW: Eingabemaske
von: Nepumuk
Geschrieben am: 30.11.2003 13:43:34
Hallo Lena,
mein Vorschlag:
Option Explicit
Sub lena()
Dim intZeile As Integer
For intZeile = 2 To 8
If Not IsNumeric(Cells(intZeile, 1)) Or Trim(Cells(intZeile, 1)) = "" Then
Beep
Cells(intZeile, 2) = InputBox("In der Zeile " & CStr(intZeile) & " steht keine Zahl, was soll denn in der Nachbarzelle eingetragen werden?", "Eingabe")
Else
Cells(intZeile, 2) = Cells(intZeile, 1) / 1000
End If
Next
End Sub
Code eingefügt mit: Excel Code Jeanie
Gruß
Nepumuk
Betrifft: AW: Eingabemaske
von: PeterW
Geschrieben am: 30.11.2003 13:47:18
Hallo Lena,
[("Hier in Zeile " & i + 2 & " steht keine Zahl...
Gruß
Peter
PS: statt mit Offset kannst du Zellen auch direkt ansprechen (siehe Cells-Befehl), das macht den Code übersichtlicher
Betrifft: AW: Eingabemaske
von: Lena
Geschrieben am: 01.12.2003 12:20:19
Hallo Ihr beiden!
Vielen Dank,jetzt werde ich meinen Chef staunen lassen
Ich bin sehr froh, dass ich dieses Forum gefunden hab:-)
Liebe Grüße
Lena