Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1472to1476
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

Probelm mit VBA Code

Probelm mit VBA Code
04.02.2016 18:08:14
Markus
Hallo zusammen,
ich habe ein Problem mit folgendem Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Debug.Print "Change"
Dim rng As Range
Static bRunning As Boolean
If Not bRunning Then
bRunning = True
Set rng = Tabelle1.Range("J24:ACR999")
If Not Intersect(Target, rng) Is Nothing Then
If Target.Value = "T" Then
Target.Offset(0, -1).Value = Tabelle1.Cells(2, Target.Column).Value
End If
End If
bRunning = False
End If
End Sub
Hier wird beim Eintragen eines "T" in einer Zelle der Wert aus der Spalte und Zeile 2 in der das "T" eingetragen wird, in die gleiche Zeile, jedoch eine Spalte vor das "T" kopiert. Es soll aber nicht in die Spalte dovor, sondern immer in die Spalte "I" und in die Zeile in der das "T" ist.
Hoffentlich hab ich das verständlich erklärt.....
Vielen Dank für Eure Tips und Hilfe!!!!

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probelm mit VBA Code
04.02.2016 18:20:03
Daniel
Hi
entweder:
Cells(Target.Row, 9) = .....
oder
Target.Offset(0, 9 - Target.Column) = ...
Gruß Daniel

AW: Probelm mit VBA Code
04.02.2016 18:27:14
Markus
Top.
Vielen Dank für die schnelle hilfe!!!

AW: Sry Daniel
04.02.2016 18:27:53
Werner
Hallo Daniel,
wieder mal vor dem Absenden nicht noch mal aktualisiert.
Gruß Werner

AW: Probelm mit VBA Code
04.02.2016 18:25:48
Werner
Hallo Markus,
Versuch mal
If Target.Value = "T" Then
Cells(Target.Row, 9).Value = Tabelle1.Cells(2, Target.Column).Value
End If
Gruß Werner

AW: Probelm mit VBA Code
04.02.2016 18:48:27
Luschi
Hallo Werner, Daniel & Markus,
wobei ich lieber diese Variante bevorzug: Cells(Target.Row, "I")
Da sieht man gleich, welche Spalte gemeint ist, besonders dann, wenn die Spalte nach 'Z' liegt.
Cells(Target.Row, "DG") ist im Quellcode eine klarere Aussage als
Cells(Target.Row, 111) oder
Target.Offset(0, 111 - Target.Column)
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Probelm mit VBA Code
04.02.2016 19:01:04
Daniel
Hi
beim Programmieren lernt man halt irgendwann mit Spaltennummern zu arbeiten und dann ist Cells(Target.row, "DG") eine genauso klare Aussage wie Target.Offset(0, 111 - Target.Column)
eigentlich ist Cells(Target.Row, "I") sogar ungenau, wenn Target auch mal eine allgemeine RangeVariable sein kann, weil hier der Tabellenblattbezug noch fehlt und dieses noch mit angegeben werden müsste, während bei der .Offsetversion das Tabellenblatt automatisch mit vorgegeben ist.
gruß Daniel

AW: Probelm mit VBA Code
04.02.2016 19:28:53
Luschi
Hallo Daniel,
den Variablenname Target sollte es nur in den Ereignisroutinen des Arbeitsblatte oder der Arbeitsmappe geben. Wer ihn mißbräuchlich in Modulen verwendet, ist selber Schuld.
Da im Beispiel von Markus aber in der 'Worksheet_Change'-Ereignisroutine programmiert wird, zeigen:
- Cells(Target.Row, "DG")
- Cells(Target.Row, 111)
- Target.Offset(0, 111 - Target.Column)
auf die gleiche Zelle des gerade auf dem Bildschirm sichtbaren Arbeitsblattes.
Verwendet man das Ereignis 'Workbook_SheetChange', dann muß man am obigen Code nichts ändern, denn es wird immer noch auf das gerade sichtbare Arbeitsblatt verwiesen. Zur Sicherheit schreibe ich es dann aber so:
- Sh.Cells(Target.Row, "DG")
- Sh.Cells(Target.Row, 111)
- Target.Offset(0, 111 - Target.Column)
Gruß von Luschi
aus klein-Paris

Anzeige
AW: Probelm mit VBA Code
04.02.2016 19:37:22
Daniel
Nein Luschi ich meinte eher sowas in einem allgemeinen Modul
dim rng as Range
set rng = Sheet(...).find(what:="irgendeinSuchbegriff")
rng.Offset(0, 111 - rng.Column).Value = "xxx"
Gruß Daniel

Auch, wenn VBA das toleriert und automatisch ...
04.02.2016 20:11:38
Luc:-?
…konvertiert, Luschi,
ist fraglich, ob Adapter/KonvertierungsPgmm für andere VB-Dialekte, ggf auch neuere MS-VBA-Versionen, das auch tun. MS wird ohnehin schon seit langem Verletzung von allgemein­gültigen Sprach­Regelungen vorgeworfen, nicht nur hierbei…
Gruß, Luc :-?
Besser informiert mit …
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige