Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1176to1180
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
Inhaltsverzeichnis

Wert aus entsprechender Zeilen-Zelle zu markierter

Wert aus entsprechender Zeilen-Zelle zu markierter
Konrad
Hallo an alle Herber-Excelianer,
ich arbeite mit xls 2003 auf Win XP und stehe als Makro-Laie wieder einmal vor einem Problem.
Zur Vorinformation:
bei meiner Tabelle ist zum Zweck einer einfacheren Dateneingabe die Option „Alternative Formeleingabe“ aktiviert (Extras / Optionen / Umsteigen). Dadurch wird die Formel mit vorangestelltem = in der Formelzeile dargestellt (=10+20+30 anstatt bloß 60).
Zu meinem Problem:
markieren einer beliebigen Zelle ab Spaltenbereich H oder rechts folgende, danach soll durch Klick auf eine Schaltfläche ein Makro starten das folgendes durchführt:
Addition des Werts aus der korrespondierenden Zeile der Spalte G (Kopieren, Inhalte einfügen, Werte, Addieren) in der markierten Zelle
wird eine Zelle in der Spalte F markiert:
Subtraktion des Werts aus der korrespondierenden Zeile der Spalte G (Kopieren, Inhalte einfügen, Werte, Subtrahieren) in der markierten Zelle
Keine Aktion soll durchgeführt werden (Mako soll nicht starten):
wenn der korrespondierende Zellwert in G = 0 oder = ““ oder wenn eine Zeile aus dem Spaltenbereich A bis E und Spalte G als Zielzelle markiert wurde.
In der markierten Zielzelle soll dann der Rechenvorgang als Formel wie oben beschrieben dargestellt werden.
Bin für jeden Ratschlag und Hinweis dankbar.
Grüße
Konrad
AW: Wert aus entsprechender Zeilen-Zelle zu markierter
28.09.2010 14:14:58
Rudi
Hallo,
so in der Art?
Private Sub CommandButton1_Click()
Dim rngG As Range
Set rngG = Cells(Selection.Row, 7)
If rngG  "" And rngG  0 Then
Select Case Selection.Column
Case Is >= 8
Selection.FormulaLocal = _
Selection.FormulaLocal & "+" & rngG.Value
Case 6
Selection.FormulaLocal = _
Selection.FormulaLocal & "-" & rngG.Value
End Select
End If
End Sub

Gruß
Rudi
AW: Wert aus entsprechender Zeilen-Zelle zu markie
28.09.2010 15:01:56
Konrad
Hallo Rudi,
vielen Dank für deine Hilfe.
Leider habe ich festgestellt, dass in einigen Ziel-Zellen von Usern einmal das Gleichheitszeichen eingegeben wurde (vor allem bei Rechnungen wie =10+20+30) in anderen wiederum nicht (wurde nur der Endbetrag wie z.B. 60 eingegeben).
Dein Code funktioniert dort wo das Gleichheitszeichen schon vorhanden ist perfekt. Bei anderen wo kein Gleichheitszeichen vorab steht, bekomme ich nur z.B. 500-200 in der Zelle, was dann auch in Nachfolgezellen die Fehlermeldung #WERT! verursacht. Es müßte hier also durch den Code das Gleichzeitszeichen erzeugt und eingefügt werden ....
Ich habe auf der Tabelle eine benutzerdefinierte Schaltfläche, der ich diesen Code zuweisen will. Bei der Auswahl "Makro zuweisen" ist der Code aber in der Auswahl nicht sichtbar.
Jetzt habe ich das von
Private Sub CommandButton1_Click()
auf
Sub CommandButton1_Click()
geändert, und da wurde es sicht- und somit auswählbar.
Geht das so in Ordnung oder muß das "Private" vorne stehen?
Grüße
Konrad
Anzeige
AW: Wert aus entsprechender Zeilen-Zelle zu markie
28.09.2010 15:16:32
Rudi
Hallo,
so?
Sub Rechnen()
Dim rngG As Range
Set rngG = Cells(Selection.Row, 7)
If rngG  "" And rngG  0 Then
Select Case Selection.Column
Case Is >= 8
Selection.FormulaLocal = _
IIf(Left(Selection.FormulaLocal, 1) = "=", "", "=") & _
Selection.FormulaLocal & "+" & rngG
Case 6
Selection.FormulaLocal = _
IIf(Left(Selection.FormulaLocal, 1) = "=", "", "=") & _
Selection.FormulaLocal & "-" & rngG
End Select
End If
End Sub

Private stand davor, weil ich einen Button aus der Steuerelemente-Toolbox genommen habe, nicht aus Formular.
Anzeige
AW: Wert aus entsprechender Zeilen-Zelle zu markie
29.09.2010 10:27:31
Konrad
Hallo Rudi,
vielen Dank für deine Hilfe. Es funzt einfach perfekt!
Damit das alles nicht so unkontrolliert abläuft, möchte ich jetzt noch eine UserForm als Zwischenabfrage einbauen bevor die Addition bzw. Subtraktion durchgeführt wird.
Es sollen dabei keine Eingabefelder sein, sondern lediglich 2 CommandButtons für JA und NEIN, sowie 4 Bezeichnungsfelder (Labels) zur Darstellung von Zellinhalten in der UserForm aufscheinen:
Label1: Werte aus A bis G der markierten Zell-Zeile (Texte getrennt durch | )
Label2 Werte aus Zeilen 4 bis 6 der markierten Zell-Spalte (Texte getrennt durch | )
Label3: Wert aus markierter Zelle
Label4: Wert aus G der markierten Zell-Zeile
Die UserForm habe ich zwar schon gezeichnet, und versucht das irgendwie zum Leben zu erwecken, habe aber nicht viel Ahnung und komme nicht weiter ….  :-(
Weiß jemand Rat?
Grüße
Konrad
Anzeige
AW: Wert aus entsprechender Zeilen-Zelle zu markie
29.09.2010 11:13:21
Rudi
Hallo,
als Ansatz:
Private Sub CommandButton1_Click()
Rechnen
End Sub

Private Sub CommandButton2_Click()
Hide
Unload Me
End Sub

Private Sub UserForm_Activate()
Dim lCol As Long, lRow As Long
lCol = Selection.Column
lRow = Selection.Row
Label1 = Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose(Cells(lRow, 1).Resize(,  _
7).Value)), "|")
Label2 = Join(WorksheetFunction.Transpose(Cells(4, lCol).Resize(3)), "|")
Label3 = Selection(1)
Label4 = Cells(lRow, 7)
End Sub

Gruß
Rudi
Anzeige
AW: Wert aus entsprechender Zeilen-Zelle zu markie
29.09.2010 12:27:53
Konrad
Hallo Rudi,
danke für den Ansatz.
Ich habe das ganze jetzt einmal unter Formulare / UserForm2 / Code anzeigen eingefügt. Danach bin ich das einmal mit F8 durchgegangen. Die Labels werden angezeigt, wenn ich auf die CommanButtons "Ja" und "Nein" klicke bleibt das Ding allerdings stehen. Nur wenn ich mit F8 weitermache wird dann die Rechnung durchgeführt ...
Müßte ich nicht im ursprünglichen Code etwa sowas einfügen ... ?
With UserForm2
.Show
End With
An welcher Stelle?
Sub Rechnen()
Dim rngG As Range
Set rngG = Cells(Selection.Row, 7)
If rngG  "" And rngG  0 Then
Select Case Selection.Column
Case Is >= 8
Selection.FormulaLocal = _
IIf(Left(Selection.FormulaLocal, 1) = "=", "", "=") & _
Selection.FormulaLocal & "+" & rngG
Case 6
Selection.FormulaLocal = _
IIf(Left(Selection.FormulaLocal, 1) = "=", "", "=") & _
Selection.FormulaLocal & "-" & rngG
End Select
End If
End Sub
Die UserForm2 sollte nur dann öffnen, wenn es etwas zu Rechnen gibt, sprich die genannten Bedingungen (markierte Zelle im zulässigen Bereich, Zellinhalt in Reihe 7 "" und 0.
Hoffe du kannst mir nochmals helfen, bin leider ein VBA Greenhorn....
Gruß
Konrad
Anzeige
Start UserForm
30.09.2010 21:31:12
Konrad
Hallo an alle hier,
kann mir jemand helfen, wo und vor allem was ich in diesem Code einfügen muß, um die untenstehende UserForm zum Starten zu bringen?
Sub Rechnen()
Dim rngG As Range
Set rngG = Cells(Selection.Row, 7)
If rngG "" And rngG 0 Then
Select Case Selection.Column
Case Is >= 8
Selection.FormulaLocal = _
IIf(Left(Selection.FormulaLocal, 1) = "=", "", "=") & _
Selection.FormulaLocal & "+" & rngG
Case 6
Selection.FormulaLocal = _
IIf(Left(Selection.FormulaLocal, 1) = "=", "", "=") & _
Selection.FormulaLocal & "-" & rngG
End Select
End If
End Sub
Die UserForm sollte nur dann öffnen, wenn es etwas zu Rechnen gibt, sprich die genannten Bedingungen (markierte Zelle im zulässigen Bereich, Zellinhalt in Reihe 7 "" und 0.
Private Sub CommandButton1_Click()
Rechnen
End Sub

Private Sub CommandButton2_Click()
Hide
Unload Me
End Sub

Private Sub UserForm_Activate()
Dim lCol As Long, lRow As Long
lCol = Selection.Column
lRow = Selection.Row
Label1 = Join(WorksheetFunction.Transpose(WorksheetFunction.Transpose(Cells(lRow, 1).Resize(,  _
_
_
7).Value)), "|")
Label2 = Join(WorksheetFunction.Transpose(Cells(4, lCol).Resize(3)), "|")
Label3 = Selection(1)
Label4 = Cells(lRow, 7)
End Sub

Bin für jede Hilfe dankbar.
Grüße
Konrad
Anzeige

332 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige