Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1424to1428
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

Wegschreiben von Zahlen

Wegschreiben von Zahlen
14.05.2015 22:41:47
Andre K.

Hallo,
ich habe in meiner Excel Datei gerade ein Problem und weiß nicht weiter.
Es geht um zwei Tabellenblätter.
In Blatt 1 habe ich einen Begriff (z.B. Umsatz Kd. xy) und daneben 12 Werte für die jeweiligen Monate (Jan - Dez).
So weit so gut.
In dem zweiten Blatt steht dieser Kunde auch in einer von vielen Zeilen. Die Werte die aber im zweiten Blatt dahinter stehen (Jan-Dez) berechnen sich aktuell. So daß ich nicht einfach einen S-Verweis auf Blatt eins machen kann, weil der Kd. per Dropdown erst ausgewählt wird also dynamisch ist.
Mein Ziel ist wie folgt.
Der Anwender soll im Ersten Blatt neue Werte eintragen (immer in der gleichen Zeile, der Kd. wird per Liste ausgewählt und steht immer im gleichen Feld). Danach soll das Makro beim Start die eingetragenen Werte nehmen, den Kd. im zweiten Blatte quasi wie beim S-Verweis suchen und die Daten dort eintragen und farbig (am besten hellgrün) markieren.
Für Eure Hilfe wäre ich sehr dankbar, ich habe jetzt schon einige Zeit dran gesessen, bekomme es aber mit meinen bisherigen Kenntnissen nicht hin :-(

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wegschreiben von Zahlen
15.05.2015 09:15:29
Peter Müller
Hallo,
wäre hilfreich, wenn du eine Beispieldatei hochladen würdest.

AW: Wegschreiben von Zahlen
15.05.2015 09:54:14
Christian
Hallo,
ich habe es eben mal mit einem S-verweis und Dropdown getestet.
Sofern ich deine Wünsche richtig gedeutet habe, müsste es problemlos funktioneren.
https://www.herber.de/bbs/user/97657.xlsx
Was du mit aktuell berechnen meinst, weis ich nicht genau, aber du kannst hinter den S-Verweis ja noch weitere Eingaben zur Berechnung vornehmen.
Ich hoffe das hilft weiter :)

AW: Wegschreiben von Zahlen
16.05.2015 18:36:09
Andre K
Vielen Dank schon mal für Eure bisherigen antworten.
Die Beispieldatei von Christian ist im Grunde richtig und spiegelt die aktuelle Datei wieder.
Nur passiert folgendes auf dem Blatt 2:
ich überschreibe die Werte in Tabelle 2 mit 12 neuen Zahlen bei einem Kunde den ich mir auswähle. Danach starte ich ein Makro und er schreibt diese 12 Zahlen in Tabelle 1 hinter den richtigen Kunden und markiert anschließend die geänderte Zahl in hellgrün. D.h. das Makro muß den Kunden in Tabelle 1 finden und dann die Werte in Tabelle 1 überschreiben..

Anzeige
AW: Wegschreiben von Zahlen
17.05.2015 19:36:34
Andre K.
ist noch ein Makrospezialist online? :-)

AW: Wegschreiben von Zahlen
17.05.2015 22:46:44
Mullit
Hallo Andre,
vielleicht könnte sowas gehen, hab' mich jetzt an Deinem ersten Beitrag orientiert und die Daten werden von Tabelle1 nach Tabelle2 geschrieben...
' ********************************************************************** 
' Modul: Tabelle1 Typ: Klassenmodul des Tabellenblattes 
' ********************************************************************** 

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Cells(2, 1).Resize(1, 13)) Is Nothing Then
    If Target.Address = "$A$2" Then _
      Call prcInsertNewVal(oprblnColor:=True) _
    Else: Call prcInsertNewVal
  End If
End Sub

Private Sub prcInsertNewVal(Optional ByRef oprblnColor As Boolean)
  Const COLOR_VALUE As Long = 5296274
  Const TAB_SIZE As Long = 3
  Const START_ROW As Long = 11
  Dim avntReturn As Variant
  Dim vntElem As Variant
  With Tabelle2
        avntReturn = Evaluate("=IF(Tabelle2!" & .Cells(START_ROW, 1).Resize(TAB_SIZE, 1).Address & _
        "=Tabelle1!" & Cells(2, 1).Address & ",ROW(Tabelle2!" & _
        .Cells(START_ROW, 1).Resize(3, 1).Address & "),"""")")
        For Each vntElem In avntReturn
            If vntElem <> vbNullString Then
              If oprblnColor Then _
               .Cells(START_ROW, 2).Resize(TAB_SIZE, 12).Interior.Pattern = xlPatternNone
              With .Cells(vntElem, 2).Resize(1, 12)
                   .Value = Cells(2, 2).Resize(1, 12).Value
                   If oprblnColor Then _
                     .Interior.Color = COLOR_VALUE
              End With
              Exit For
            End If
        Next
  End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Hab's zum Gegenchecken noch in die Datei eingefügt:
https://www.herber.de/bbs/user/97688.xlsm
Gruß, Mullit

Anzeige
AW: Wegschreiben von Zahlen
18.05.2015 22:01:49
Andre K.
Hallo Mullit,
das ist Klasse, das ist toll!!!
Ich bin sprachlos :-)
Vielen Dank und ganz viele Grüße!!

AW: Wegschreiben von Zahlen
18.05.2015 21:21:05
Mullit
Hallo Andre,
...geht mit der .Find-Methode doch besser...
' ********************************************************************** 
' Modul: Tabelle1 Typ: Klassenmodul des Tabellenblattes 
' ********************************************************************** 

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
  If Not Intersect(Target, Cells(2, 1).Resize(1, 13)) Is Nothing Then
    If Target.Address = "$A$2" Then _
      Call prcInsertNewVal(oprblnColor:=True) _
    Else: Call prcInsertNewVal
  End If
End Sub

Private Sub prcInsertNewVal(Optional ByRef oprblnColor As Boolean)
  Const COLOR_VALUE As Long = 5296274
  Const TAB_SIZE As Long = 3
  Const START_ROW As Long = 11
  Dim objRange As Range
  With Tabelle2
      Set objRange = .Cells(START_ROW, 1).Resize(TAB_SIZE, 1).Find( _
         What:=Cells(2, 1).Value, LookIn:=xlValues, LookAt:=xlWhole)
      If Not objRange Is Nothing Then
        If oprblnColor Then _
         .Cells(START_ROW, 2).Resize(TAB_SIZE, 12).Interior.Pattern = xlPatternNone
        With .Cells(objRange.Row, 2).Resize(1, 12)
             .Value = Cells(2, 2).Resize(1, 12).Value
             If oprblnColor Then _
               .Interior.Color = COLOR_VALUE
        End With
        Set objRange = Nothing
      Else
         Debug.Print "NoElementFound"
      End If
  End With
End Sub


VBA/HTML - CodeConverter für Office-Foren
AddIn für Excel/Word 2000-2010 - komplett in VBA geschrieben von Lukas Mosimann
Projektbetreuung durch mumpel



Code erstellt und getestet in Office 12

Gruß, Mullit

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige