Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Riesen Exel Problem





Frage

Hallo erstmal ich habe folgendes Problem mit Exel, und hoffe das mir da jemand weiterhelfen kann. Ist es möglich eine Formel und die Eingabe sowie Ausgabe in eine gleiche Zelle zu bekommen. Das heißt ich möchte neben der Zelle mit der Formel einen Text schreiben " z.B. name. Wenn man dan in der Zelle mit Formel ein "a" eingeben würde sollte z.B. Anton erscheinen, die Namen habe ich schon in der Wenn Formel eingegeben. I Es funktioniert auch wenn die Ein und Ausgabe in der Nachbazelle der Formel steht ,ich meine gelesen zu haben das es mit einem Zirkelbezug gehen würde, komme mit der Exelhilfe aber nicht weiter. Ich hoffe das ich das Problem eiigermassen erklärt bekommen habe. Danke im Vorraus Jörg

Antwort 1 von JoeKe

Hallo digu,

das was du meinst ist Iteration einzustellen unter Extras, Optionen, Berechnungen.
Bei deinem Problem wird das aber nichts helfen.
Durch das eintragen eines Buchstaben in die Zelle mit der Formel wird diese überschrieben/gelöscht.
Es wäre aber mit einer VBA-Lösung machbar.

MfG
JöKe

Antwort 2 von digu

Hallo Jöke
erstmal danke,
wie würde es mit VBA den aussehen, könntest Du mir da helfen.
Da ich es wirklich dringen bräuchte und langsam am verzweifeln bin.

=WENN(UND(A35=1);"A";WENN(UND(A35=2);"b";WENN(UND(A35=3);"c";WENN(UND(A35=4);"d";WENN(UND(A35=5);"e";WENN(UND(A35=6);"f"))))))
so sieht sie aus, wäre es möglich die Eingabe 1 automatisch in den dazugehörigen Buchstaben umzuwandeln. . Es müste also nicht alles in einer Zelle ablaufen sonder in 2
Danke im voraus
Digu

Antwort 3 von JoeKe

Moin Digu,

folgender Code, der in das VBA-Projekt des Tabellenblatts muss, wandelt in Zelle A35 eingegebene Zahlen in den dazugehörigen Buchstaben um.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim arr(1 To 26) As String, i As Integer
If Target.Address <> "$A$35" Then
Exit Sub
End If
arr(1) = "A"
arr(2) = "B"
arr(3) = "C"
arr(4) = "D"
arr(5) = "E"
arr(6) = "F"
arr(7) = "G"
arr(8) = "H"
arr(9) = "I"
arr(10) = "J"
arr(11) = "K"
arr(12) = "L"
arr(13) = "M"
arr(14) = "N"
arr(15) = "O"
arr(16) = "P"
arr(17) = "Q"
arr(18) = "R"
arr(19) = "S"
arr(20) = "T"
arr(21) = "U"
arr(22) = "V"
arr(23) = "W"
arr(24) = "X"
arr(25) = "Y"
arr(26) = "Z"
i = Range("A35")
Range("A35") = arr(i)
End Sub


MfG
JöKe

Antwort 4 von digu

Hallo Jöke
was soll ich dazu sagen, ist echt super.
Tausend und einen Dank, finde ich echt klasse was hier geboten wird.
danke nochmals,
Gruß Digu

Antwort 5 von digu

Hallo Jöke
danke nochmals für die Hilfe und ich hoffe das Du mir noch einmal helfen kannst.
Das Programm läuft super nur 2 Problemme:
1 Wenn ich eine Zahl eingebe und dann return drücke bleibt die Zahl stehen, erst wenn ich erneut auf das Feld gehe erscheint der Buchstabe.
2 wenn ich irgenein anderes Feld in der Tabelle anklicke erscheint sofort eine Fehlermeldung " Beenden oder Debuggen.
Wie kann ich es anstellen das ich die anderen Felder frei benutzen kann und die umwandlung von Zahl in Buchstabe nach dem returnerfolgt.

Danke im voraus
digu

Antwort 6 von JoeKe

hallo digu,

tausch den Code mal gegen diesen aus:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr(1 To 26) As String, i As Integer
If Target.Address <> "$A$35" Then
Exit Sub
End If
If Range("A35") <> Numeric Then
Application.EnableEvents = False
arr(1) = "A"
arr(2) = "B"
arr(3) = "C"
arr(4) = "D"
arr(5) = "E"
arr(6) = "F"
arr(7) = "G"
arr(8) = "H"
arr(9) = "I"
arr(10) = "J"
arr(11) = "K"
arr(12) = "L"
arr(13) = "M"
arr(14) = "N"
arr(15) = "O"
arr(16) = "P"
arr(17) = "Q"
arr(18) = "R"
arr(19) = "S"
arr(20) = "T"
arr(21) = "U"
arr(22) = "V"
arr(23) = "W"
arr(24) = "X"
arr(25) = "Y"
arr(26) = "Z"
i = Range("A35")
Range("A35") = arr(i)
Application.EnableEvents = True
End If
End Sub


Gruß

JöKe

Antwort 7 von digu

Danke Jöke
läuft alles bestens.
Gruß digu

Antwort 8 von JoeKe

Hallo digu,

da nich für.

Schönen Abend noch

JöKe

Antwort 9 von digu

Hallo Jöke
da alles läuft werde ich einen schönen abend haben, wünsche Dir auch einen schönen abend.
Bis dann
Gruß digu

Antwort 10 von digu

Hi Jöke
auch wenn ich nerve, ist es möglich auch mehrer Zellen miteinzubeziehen.
Also in einer Tabelle mehrere solcher Felder bzw. Zellen zu habe und ich in jeder eine Eingabe zu tätigen, unabhängig in welcher. Bis jetzt hört das pr. ja auf wenn die Eingabe <> B ist. kann man eine Arte Verschachtelung machen
Danke im voraus
digu

Antwort 11 von JoeKe

moin digu,

das würde ich so machen:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$35" Then
If Target.Address <> "$A$36" Then
Exit Sub
End If
End If
If Target.Address = "$A$35" Then erste
If Target.Address = "$A$36" Then zweite
End Sub
Sub erste()
Dim arr(1 To 26) As String, i As Integer
If Range("A35") <> Numeric Then
Application.EnableEvents = False
arr(1) = "A"
arr(2) = "B"
arr(3) = "C"
arr(4) = "D"
arr(5) = "E"
arr(6) = "F"
arr(7) = "G"
arr(8) = "H"
arr(9) = "I"
arr(10) = "J"
arr(11) = "K"
arr(12) = "L"
arr(13) = "M"
arr(14) = "N"
arr(15) = "O"
arr(16) = "P"
arr(17) = "Q"
arr(18) = "R"
arr(19) = "S"
arr(20) = "T"
arr(21) = "U"
arr(22) = "V"
arr(23) = "W"
arr(24) = "X"
arr(25) = "Y"
arr(26) = "Z"
i = Range("A35")
Range("A35") = arr(i)
Application.EnableEvents = True
End If
End Sub
Sub zweite()
Dim arr(1 To 26) As String, j As Integer
If Range("A36") <> Numeric Then
Application.EnableEvents = False
arr(1) = "A"
arr(2) = "B"
arr(3) = "C"
arr(4) = "D"
arr(5) = "E"
arr(6) = "F"
arr(7) = "G"
arr(8) = "H"
arr(9) = "I"
arr(10) = "J"
arr(11) = "K"
arr(12) = "L"
arr(13) = "M"
arr(14) = "N"
arr(15) = "O"
arr(16) = "P"
arr(17) = "Q"
arr(18) = "R"
arr(19) = "S"
arr(20) = "T"
arr(21) = "U"
arr(22) = "V"
arr(23) = "W"
arr(24) = "X"
arr(25) = "Y"
arr(26) = "Z"
j = Range("A36")
Range("A36") = arr(j)
Application.EnableEvents = True
End If
End Sub


Den kompletten Code in das Projekt deines Tabellenblatts.

MfG
JöKe

Antwort 12 von JoeKe

Dieser Teil kann raus:

If Target.Address <> "$A$35" Then
If Target.Address <> "$A$36" Then
Exit Sub
End If
End If[\b]

Antwort 13 von digu

hallo Jöke
funktioniert alles bestens
die Hilfe war echt klasse, hat mir super weitergeholfen.
gruß digu

Antwort 14 von JoeKe

Moin digu,

geht auch kürzer:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$35" Then erste
If Target.Address = "$A$36" Then zweite
End Sub
Sub erste()
Dim i As Long
If Range("A35") <> Numeric Then
Application.EnableEvents = False
i = Range("A35") + 64
Range("A35") = Chr(i)
Application.EnableEvents = True
End If
End Sub
Sub zweite()
Dim j As Long
If Range("A36") <> Numeric Then
Application.EnableEvents = False
j = Range("A36") + 64
Range("A36") = Chr(j)
Application.EnableEvents = True
End If
End Sub



MfG
JöKe

Antwort 15 von digu

Hallo Jöke,
ist ja unglaublich, ich traue mich jetzt gar nicht zu fragen, und auch wenn ich jetzt lästig werde.

Könntest Du mir noch bei diesem Problem helfen:
Wie gesagt alles funktioniert so wie ich es wollte, nur wenn ich als Eingabe etwas anderes eingebe z.B. einen Buchstaben dann kommt Fehler „Beenden oder Debuggen“.
Ich hatte versucht die Zelle über Gültigkeit nur ganze Zahlen zu schützen, dass macht er auch und es erscheint "falsche Eingabe" aber das makro bricht trotzdem ab und schreibt “Beenden oder Debuggen“.
Wie könnte ich es machen das bei einer anderen Eingabe außer Zahlen vielleicht eine Fehlermeldung kommt, aber nicht abbricht, da es ja schnell passiert ist .
Denn wenn ein andere das Makro benutzt ist eine Falscheingabe( z.B. Buchstabe oder ,) ja schnell passiert und wenn man dann nicht weiß was zu tun ist, ist es blöd.
Danke im voraus,
Gruß digu

Antwort 16 von JoeKe

Hallo digu,

versuch mal dies:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$35" Then erste
If Target.Address = "$A$36" Then zweite
End Sub
Sub erste()
Dim i As Long
If IsNumeric(Range("A35")) = False Then
Range("A35").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="1", Formula2:="26"
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = "Nur Zahlen"
.ErrorMessage = "Es dürfen nur Zahlen zwischen 1 und 26 eingegeben werden!"
.ShowInput = True
.ShowError = True
End With
Else
i = Range("A35") + 64
Range("A35") = Chr(i)
End If
End Sub
Sub zweite()
Dim j As Long
If IsNumeric(Range("A36")) = False Then
Range("A36").Select
With Selection.Validation
.Delete
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="1", Formula2:="26"
.IgnoreBlank = True
.InCellDropdown = True
.ErrorTitle = "Nur Zahlen"
.ErrorMessage = "Es dürfen nur Zahlen zwischen 1 und 26 eingegeben werden!"
.ShowInput = True
.ShowError = True
End With
Else
j = Range("A36") + 64
Range("A36") = Chr(j)
End If
End Sub


MfG
JöKe

Antwort 17 von digu

Hallo Jöke
funktioniert prima, ich denke ich habe es jetzt so wie ich es mir vorgestellt hatte, ich danke Dir nochmals.
Ich muss es nochmal sagen " ich finde es prima wie mir geholfen wurde"
Schönes Wochenende
Gruß digu

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


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: