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

VBA Target Cell

VBA Target Cell
13.10.2003 23:46:32
Ernst Dunkel
Guten Abend

Mit dem untenstehenden Code starte ich das Makro aus einer beliebigen Zelle zwischen B11 bis B19 sowie i11 bis i19.
Es fügt in die Zelle F11 und C11 Werte ein.

Änderung:
Wird eine Zelle B angeklickt, so sollen die Werte in F und C der angeklickten Zelle der Zeile eingefügt werden. (Klick in B11 Werte in F11 und C11 einsetzen, usw.)
Wird eine Zelle i angeklickt, so sollen die Werte in M und J der angeklickten Zelle der Zeile eingefügt werden. (Klick in i19 werte in M19 und J19 einsetzen, usw.)

Wie müsste der untenstehende Code abgeändert werden?

mfg
Ernst Dunkel



Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If (Target.Column = 2 Or Target.Column = 9) And Target.Row > 10 And Target.Row < 19 Then
Application.ScreenUpdating = False
Sheets("U-Werte").Range("F11").Select
ActiveCell.FormulaR1C1 = "=IF(ISNUMBER(RC[-1]),RC[-1]/RC[-2]/1000,0)"
Range("C11").Select
Sheets("Baustoffe").Visible = True
Sheets("Baustoffe").Activate
Selection.AutoFilter
Sheets("Baustoffe").ScrollArea = "c4:c112"
End If
Application.ScreenUpdating = True
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Target Cell
13.10.2003 23:55:16
PeterW
Hallo Ernst,

mit dem Select-Befehl löst du das Worksheet_SelectionChange-Ereignis erneut aus. Ich verstehe noch nicht, welche Werte in F und C bzw. M und J eingetragen werden sollen. Werte in Zeile 19 werden nicht mehr berücksichtigt weil die Bedingung Target.Row < 19 nicht erfüllt wird.

Gruß
Peter
AW: VBA Target Cell
14.10.2003 00:11:05
Ernst Dunkel
Hallo Peter

Auszug aus dem Code:
'Wird B11 angeklickt sowird die Formel in F11 eingesetzt, dann springt das Programm in die Baustoff-Tabelle, dort wird ein Wert gesucht und mittels einer OK-Taste zurück in die U-Wert-Tabelle gewechselt und trägt den Wert in C11 ein. Das funktioniert soweit aber eben nur für F11 und nicht für einen anderen Bereich zwischen F11 und F19 sowie B11 bis B19.

Sheets("U-Werte").Range("F11").Select ActiveCell.FormulaR1C1 = "=IF(ISNUMBER(RC[-1]),RC[-1]/RC[-2]/1000,0)"

Gruss ernst
Anzeige
AW: VBA Target Cell
14.10.2003 00:28:28
PeterW
Hallo Ernst,

im Moment trägst du eine Formel in F11 ein und keinen Wert und ich kann im Code auch nichts finden, was nach einer Suche aussieht.

Ich vermute, dass dein eingeschlagener Lösungsweg nicht der optimale ist. Eine Beispielmappe (mit dem kompletten Code!) dürfte das Problem deutlicher darstellen. Und wenn du in der Mappe dann die Aufgabenstellung noch einmal genau darstellst wird sich bestimmt eine Lösung finden lassen.

Gruß
Peter
AW: VBA Target Cell
14.10.2003 08:08:08
Ernst Dunkel
Guten Morgen Peter

Ist es möglich, dass ich Dir die Datei maile?
Wenn ja, könntest Du mir Deine e-Adresse angeben?

Gruss Ernst Dunkel
Anzeige
AW: VBA Target Cell
14.10.2003 12:03:58
PeterW
Hallo Ernst,

mail sie an peter.wunderlich@gmx.net (komme aber erst heute Abend dazu, mir das Problem genauer anzusehen).

Gruß
Peter
fürs Archiv
15.10.2003 00:07:24
PeterW
Mit dem geposteten Code des Blattes (U-Werte) soll das Arbeitsblatt Baustoffe eingeblendet werden, aus dem ein Datensatz ausgewählt wird, der dann in das Blatt U-Werte mittels einer Schaltfläche geschrieben wird.
Lösungsansatz mit dem vorhandenen Code:
Public Variable in die Target.Row geschrieben wird in einem Standardmodul dimensionieren. Mit dieser Variablen dann aus dem Code der Schaltfläche direkt in U-Werte schreiben.
Code in U-Werte:

Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Target.Column = 2 Or Target.Column = 9 Then
'hier weitere Bedingungen für den auszuwertenden Zeilenbereich
lgRow = Target.Row
intCol = Target.Column
Cells(lgRow, intCol + 4).FormulaR1C1 = "=IF(ISNUMBER(RC[-1]),RC[-1]/RC[-2]/1000,0)"
Sheets("Baustoffe").Visible = True
Sheets("Baustoffe").Activate
End Sub

Und der Code zum Schreiben des Datensatzes per Schaltfläche:
Sub BaustoffeEin()
If Selection.Cells.Count > 1 Then ActiveCell.Select
With Sheets("U-Werte")
.Cells(lgRow, intCol + 1) = ActiveCell.Value
.Cells(lgRow, intCol + 2) = ActiveCell.Offset(0, 1).Value
.Cells(lgRow, intCol + 3) = ActiveCell.Offset(0, 2).Value
.Activate
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige