Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
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
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formelumstellung

Formelumstellung
11.02.2007 21:02:51
Chantal
Hallole,
ich hätte da noch eine Frage,
wie kann ich die Berechnung in Zelle A18 ausgeben statt in einer MsBox?
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$10" Then
Dim B As String
Dim i As Integer
Dim S As Long
Dim Summe As Long
With Sheets(1)
For i = 1 To Len(.Cells(10, 1))
B = Mid(.Cells(10, 1), i, 1)
For S = 1 To 26
If UCase(B) = UCase(.Cells(1, S)) Then Summe = Summe + .Cells(2, S)
Next S
For S = 1 To 11
If UCase(B) = UCase(.Cells(3, S)) Then Summe = Summe + .Cells(4, S)
Next S
Next i
End With
MsgBox Summe
End If
End Sub

Gruss
Chantal

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Range("A18") = Summe o.w.T.
11.02.2007 21:13:36
Ramses
...
AW: Range("A18") = Summe o.w.T.
11.02.2007 21:20:22
Chantal
Hallo Ramses,
vielen Dank für deine schnelle Hilfe, hatte ich auch versucht
aber irgenwie habe ich doch einen Fehler gemacht.
Ich hätte da noch ein letztes Problem.
Kann man den Code so erweitern das nicht nur in A10 etwas eingetragen wird
sondern z.B. auch in A10-A17 und diese Brechnungen dann ab Zelle A18,A19,A20
ausgegeben werden.
Wäre schön wenn Du mir weiterhelfen könntest.
Gruss
Chantal
AW: Range("A18") = Summe o.w.T.
11.02.2007 21:22:03
Ramses
Hallo
":..Wäre schön wenn Du mir weiterhelfen könntest...."
Mach ich,... wenn du mir vorher sagst was du noch alles machen willst :-)
Gruss Rainer
Anzeige
AW: Range("A18") = Summe o.w.T.
11.02.2007 21:27:56
Chantal
Hallo Rainer,
nur dieses eine dann wäre ich glücklich
Gruss
Chantal
AW: Range("A18") = Summe o.w.T.
12.02.2007 18:39:43
Ramses
Hallo
probier mal
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim B As String
Dim i As Integer
Dim S As Long
Dim Summe As Long
Dim leftCol As Long, tarCol As Long
Select Case Target.Address(0, 0)
Case "A10", "A12", "A13", "A13", "A14", "A15", "A16", "A17"
With ActiveSheet
For i = 1 To Len(.Cells(10, 1))
B = Mid(.Cells(10, 1), i, 1)
For S = 1 To 26
If UCase(B) = UCase(.Cells(1, S)) Then Summe = Summe + .Cells(2, S)
Next S
For S = 1 To 11
If UCase(B) = UCase(.Cells(3, S)) Then Summe = Summe + .Cells(4, S)
Next S
Next i
leftCol = .Cells(Target.Row, 255).End(xlToLeft).Column
If leftCol < 17 Then
tarCol = 18
Else
tarCol = leftCol + 1
End If
.Cells(Target.Row, tarCol) = Summe
End With
End Select
End Sub

Gruss Rainer
Anzeige
AW: Range("A18") = Summe o.w.T.
13.02.2007 15:00:19
Chantal
Hallo Rainer,
danke das Du dich noch einmal bemühst,
aber leider bekomme ich keine Summenausgabe.
Gruss
Chantal
AW: Range("A18") = Summe o.w.T.
13.02.2007 19:02:33
Ramses
Hallo
Was soll das heissen
"...aber leider bekomme ich keine Summenausgabe...."
Geh mal den Code im Einzelschritt durch und schau mal wo er die Summe hinschreibt.
Normalerweise in A18 beginnend nach rechts
Gruss Rainer
AW: Range("A18") = Summe o.w.T.
13.02.2007 20:45:44
Chantal
Hallo Rainer,
ich habe das File einmal hochgeladen
darin erkennst Du sicherlich was ich für einen Fehler mache.

Die Datei https://www.herber.de/bbs/user/40405.xls wurde aus Datenschutzgründen gelöscht

Viele Grüsse
Chantal
Anzeige
AW: Range("A18") = Summe o.w.T.
13.02.2007 22:14:15
Ramses
Hallo
Sorry, ... aber ich versteh dein Problem immer noch nicht.
Die Werte werden korrekt geschrieben ab Spalte 18 !
https://www.herber.de/bbs/user/40408.xls
Ich habe den Code noch etwas angepasst dass auch die korrekte Zelle in dem von dir angegebenen Bereich geprüft wird.
Gruss Rainer
AW: Range("A18") = Summe o.w.T.
14.02.2007 09:59:05
Chantal
Guten Morgen Rainer,
jetz funktioniert es einwandfrei, ich habe die Ausgabe-Zellen noch angepaßt.
Jetzt wollte ich es mir noch etwas einfacher machen und kopiere die Daten
aus einem anderem Tabellenblatt in die Zellen A10-A30 leider muss ich erst
jede einzelne Zelle aktivieren das die Berechnung ausgeführt wird.
Gibt es da noch ein Möglichkeit dies zu ändern.
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim B As String
Dim i As Integer
Dim S As Long
Dim Summe As Long
Dim leftCol As Long, tarCol As Long
Select Case Target.Address(0, 0)
Case "A10", "A11", "A12", "A13", "A13", "A14", "A15", "A16", "A17"
With ActiveSheet
For i = 1 To Len(.Cells(Target.Row, 1))
B = Mid(.Cells(Target.Row, 1), i, 1)
For S = 1 To 50
If UCase(B) = UCase(.Cells(2, S)) Then
Summe = Summe + .Cells(3, S)
Exit For
End If
Next S
For S = 1 To 11
If UCase(B) = UCase(.Cells(5, S)) Then Summe = Summe + .Cells(6, S)
Next S
Next i
leftCol = .Cells(Target.Row, 254).End(xlToLeft).Column
'Definiere hier ab welcher Spalte geschrieben werden soll
If leftCol < 17 Then
tarCol = 2
Else
tarCol = leftCol + 1
End If
'... oder hier ab Spalte 2 das Ergebnis schreiben
'If leftCol < 2 Then
'   tarCol = 2
'Else
'   tarCol = leftCol + 1
'End If
.Cells(Target.Row, tarCol) = Summe
End With
End Select
End Sub

Viele Grüsse sendet Dir
Chantal
Anzeige
AW: Range("A18") = Summe o.w.T.
14.02.2007 11:35:36
Ramses
Hallo
Sorry,... aber definiere bitte was du genau machen willst, dann sehen wir weiter.
Wenn du die Daten nun kopierst, ist das was du bisher erhalten hast, und wir unsere Zeit investiert haben, völlig für die Katz gewesen.
Zeig mal den Code mit dem du kopierst.
Gruss Rainer
AW: Range("A18") = Summe o.w.T.
14.02.2007 11:47:48
Chantal
Hallo Ramses,
ich habe die Daten für Spalte A10.......... schon in einem anderen Tabellenblatt
diese sollte ich verwenden, wenn ich sie nun kopieren könnte bräuchte ich
sie nicht noch einmal in unserem Tabellenblatt einzutragen.
Grüssle und Danke
Chantal
AW: Formelumstellung
11.02.2007 21:18:27
Gerd L
Hallo Chantal,
ungetestet.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$10" Then
Dim B As String
Dim i As Integer
Dim S As Long
Dim Summe As Long
With Sheets(1)
For i = 1 To Len(.Cells(10, 1))
B = Mid(.Cells(10, 1), i, 1)
For S = 1 To 26
If UCase(B) = UCase(.Cells(1, S)) Then Summe = Summe + .Cells(2, S)
Next S
For S = 1 To 11
If UCase(B) = UCase(.Cells(3, S)) Then Summe = Summe + .Cells(4, S)
Next S
Next i
.Cells(18,1).Value= Summe
End With
End If
End Sub

Gruß
Gerd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige