Makro anpassen oder umstellen

Bild

Betrifft: Makro anpassen oder umstellen
von: Rolf 2
Geschrieben am: 01.12.2003 21:04:04

Hallo Fachleute,

ich brauche Eure Hilfe.
Ich möchte in einer Tabelle mit mehreren Tabellenblättern erreichen, dass bei der Eingabe von bestimmten Werten in Zeile 2 die zuvor eingetragenen Werte in Zeile 1 in Klammer gesetzt werden. Gleichzeitig soll bei Eingabe eines Wertes in Zeile 1, eine Angabe in Zeile drei gemacht werden.
Beispiel:

Zeile 1 S
Zeile 2
Zeile 3 7


Zeile 1 (S)
Zeile 2 K
Zeile 3 7


Die Daten in Zeile 3 und die Kriterien, durch welche Info in Zeile 2 der Wert in Zeile 1 in Klammer gesetzt werden soll, kommen aus einer Data-Tabelle.

Um dies zu ermöglichen hat mir ein Fachmann bereits ein Makro programmiert. Dieses funktionierte auch wunderbar, aber nur wenn man das Ganze in Zeile 1 bis 3 benutzt.
In meinen Tabellenblättern soll das aber über mehrere Zeilen gelten, wobei immer drei zusammenhängend sind. Also

Zeile 1
Zeile 2
Zeile 3

Dann
Zeile 4
Zeile 5
Zeile 6

Etc.

Man müsste also wahrscheinlich nur das Makro in dessen Erfassungsbereich umstellen. So hoffe ich zumindest. Ich kann aber kein VBA.
Wenn Ihr möchtet, lade ich das Makro und eine meiner Tabellen hoch. werde es zumindest versuchen, annsonsten geht das natürlich auch über Mail.

Kann mir jemand von Euch helfen?

Viele Grüße

Rolf

Bild


Betrifft: AW: Makro anpassen oder umstellen
von: Rolf 2
Geschrieben am: 01.12.2003 21:17:39

Sorry bekomme immer Fehler beim Hochladen der Datei.
Habe diese Makro.xls genannt. Ich weiß nicht warum ich sie nicht hochladen kann.

Rolf


Bild


Betrifft: AW: Makro anpassen oder umstellen
von: Rolf 2
Geschrieben am: 01.12.2003 21:55:11

Aber ich kann das Makro hier einkopieren! Also hier kommt es. Vielleicht könnt ihr mir sagen, welcher Eintarg für die Zeilen usw. zuständig ist oder wie man das global lösen kann.

Rolf

Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)
   Dim wks As Worksheet
   Dim iCol As Integer
   If Target.Row > 2 Then Exit Sub
   Set wks = Worksheets("Data")
   iCol = Target.Column
   Application.EnableEvents = False
   On Error GoTo ERRORHANDLER
   If Not IsError(Application.Match(Cells(1, iCol).Value, wks.Columns(1), 0)) And _
      Not IsError(Application.Match(Cells(2, iCol).Value, wks.Columns(3), 0)) Then
      Cells(1, iCol).NumberFormat = """(""@"")"""
   End If
   If Not IsError(Application.Match(Cells(1, iCol).Value, wks.Columns(1), 0)) And _
      IsError(Application.Match(Cells(2, iCol).Value, wks.Columns(3), 0)) Then
      Cells(1, iCol).NumberFormat = "@"
   End If
ERRORHANDLER:
   Application.EnableEvents = True
End Sub



Bild


Betrifft: AW: Makro anpassen oder umstellen
von: NE
Geschrieben am: 02.12.2003 00:07:03

Ich versuch's mal ungetestet ..., vielleicht hängt sich noch einer mit ran ;-)
BTW teste das mal in einer Kopie deiner Datei ...nur ein Schuss ins Blaue

lg Nancy
--


Private Sub Worksheet_Change(ByVal Target As Range)
   Dim wks As Worksheet
   Dim iCol As Integer
   dim iRow as integer
   'bezieht sich nur auf Zeilen 1+2, deswegen auskommentiert
   'If Target.Row > 2 Then Exit Sub
   'schade, das kennen wir nicht ;-)
   Set wks = Worksheets("Data")
   'die Spalte der Zielzelle (zuletzt aktiv/geänderte)
   iCol = Target.Column
   iRow = target.row 'dito, aber Zeile
   Application.EnableEvents = False
   On Error GoTo ERRORHANDLER
   If Not IsError(Application.Match(Cells(iRow, iCol).Value, wks.Columns(1), 0)) And _
      Not IsError(Application.Match(Cells(iRow+1, iCol).Value, wks.Columns(3), 0)) Then
      Cells(iRow, iCol).NumberFormat = """(""@"")"""
   End If
   If Not IsError(Application.Match(Cells(iRow, iCol).Value, wks.Columns(1), 0)) And _
      IsError(Application.Match(Cells(iRow+1, iCol).Value, wks.Columns(3), 0)) Then
      Cells(iRow, iCol).NumberFormat = "@"
   End If
ERRORHANDLER:
   Application.EnableEvents = True
End Sub



Bild


Betrifft: AW: Makro anpassen oder umstellen
von: Rolf 2
Geschrieben am: 02.12.2003 00:55:11

Hallo Nancy,

danke für Deinen Versuch. Leider hat es nicht geklappt.

lg Rolf 2


Bild


Betrifft: AW: Makro anpassen oder umstellen
von: Rolf 2
Geschrieben am: 02.12.2003 00:56:45

Hallo Nancy,

hat leider nicht funktioniert. Danke für Deinen Versuch

lg
Rolf 2


Bild


Betrifft: AW: Makro anpassen oder umstellen
von: Reinhard
Geschrieben am: 02.12.2003 02:39:45

Hi Rolf,
probiers mal so.
Gruß
Reinhard

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
   Dim r as Long
   Dim wks As Worksheet
   Dim iCol As Integer
   r = Target.Row
       'wenn Row durch 3 teilbar exit sub
   If Int(r / 3) <> r / 3 Then Exit Sub 'Naja, könnt man auch weglassen
       'wenn r durch zwei teilbar, um eins verringern
   If Int(r / 2) = r / 2 Then r = r - 1
   Set wks = Worksheets("Data")
   iCol = Target.Column
   Application.EnableEvents = False
   On Error GoTo ERRORHANDLER
   If Not IsError(Application.Match(Cells(r, iCol).Value, wks.Columns(r), 0)) Then
       If Not IsError(Application.Match(Cells(r + 1, iCol).Value, wks.Columns(r + 2), 0)) Then
          Cells(r, iCol).NumberFormat = """(""@"")"""
       Else
          Cells(r, iCol).NumberFormat = "@"
       End If
   End If
ERRORHANDLER:
   Application.EnableEvents = True
End Sub



Bild


Betrifft: Hochladen klappt nicht
von: Reinhard
Geschrieben am: 02.12.2003 10:26:17

Hi Rolf,
gerade einen Tipp von Nike gelesen. Benenn mal deine Datei um in hdlgsklgsnsvx.xls :-)
also einen Namen der noch nicht so auf dem server hier bekannt ist und versuch nochmal sie hochzuladen, falls das noch nötig ist.
Gruß
Reinhard


Bild


Betrifft: AW: Makro anpassen oder umstellen
von: Rolf 2
Geschrieben am: 02.12.2003 21:25:47

Hallo Reinhard,

danke für Deine Hilfe. Leider klappt das mit dem Makro auch nicht.
Das Hochladen wird trotz der Umbenennung nicht hochgeladen. Ich weiß auch nicht warum das nicht geht.
Ich denke es wäre hilfreicher wenn ich die Datei auf den Server bekäme.

Grüße Rolf 2


Bild

Beiträge aus den Excel-Beispielen zum Thema " Makro anpassen oder umstellen"