![]() |
Excel2007 Tabellenwerte abfragen und zuordnen
Hallo,
ich habe eine bzw mehrere Tabellen in Excel 2007 erstellt. Wie folgt aufgebaut: Erstes Blatt beinhaltet die Zusammenfassung mit dem aktuellen ist Wert. Die nächsten 12 Blätter liefern die Einzelauflistungen nach Datum und Grundwert sortiert (je ein Blatt = ein Monat). Nun möchte ich gern in dem ersten Blatt nur das Datum haben, wo ein Wert eingetragen worden ist. Also wenn ich jetzt beim 1.Jan in Spalte 5 einen Wert eingebe, soll im ersten Blatt das Datum erscheinen mit dem Wert. Steht nun auch im 4.Jan ein Wert, soll die nächste Zeile genutzt werden und wieder das Datum und der Wert erscheinen. Da im 2. und 3.Jan keine Werte sind, sollen diese nicht aufgelistet werden. Ist sowas mit Excel möglich oder müsste ich da eher auf eine richtige Datenbank umsteigen? Wenn es möglich ist, wie kann ich es umsetzen? Vielen Dank für die Hilfe :) |
Excel ist ein Programm und kein Betriebssystem!
VERSCHOBEN! |
Hi...
mit Excel geht fast alles...:T also ich bin jetzt auch nicht der Super-Profi in Excel, aber der folgende Code funktioniert... es gibt sicherlich auch andere Wege, aber naja... Ok... folgenden Code in deine Zusammenfassung (muss aber Blatt 1 sein)... ich bin davon ausgegangen, dass überall in Zeile 1 Überschriften sind (deswegen im Code k=2) und es um die Werte in Spalte 5 (also Spalte E) geht. Private Sub Worksheet_Activate() Dim i, k, l Range("A2:ZZ1000").ClearContents l = 2 For i = 2 To Worksheets.Count For k = 2 To Sheets(i).Cells(1000, 5).End(xlUp).Row If Sheets(i).Cells(k, 5).Value <> "" Then Cells(l, 1).Value = Sheets(i).Cells(k, 1).Value Cells(l, 5).Value = Sheets(i).Cells(k, 5).Value l = l + 1 End If Next k Next i End Sub Jedesmal wenn du nun Blatt 1 aktivierst, werden alle Werte neu eingelesen... |
Danke für die hilfe, nur wo muss der code denn rein? Bin nich grad so belesen was excel programmierung angeht :-P
|
Hi...
Entwicklertools... Code anzeigen... Edit: Beim Speichern musst du dann aber als Dateiendung .xlsm auswählen |
Hi,
also ich hab das nun alles eingegeben und es zerschießt mir das Layout und ich erhalte nur Fehler :( Eingabe: http://img708.imageshack.us/img708/796/ek2z.th.jpg Anzeige: http://img821.imageshack.us/img821/5486/ek1gn.th.jpg Blatt eins normalerweise: http://img849.imageshack.us/img849/4889/43133660.th.jpg Blatt 2- 13: http://img716.imageshack.us/img716/7014/10936454.th.jpg Kein Plan ob ich das richtig gemacht habe oder obs einfach nur nich klappt . Gibt es noch andere Möglichkeiten? |
Hi....
naja... ich konnte anhand deiner Beschreibung natürlich nicht genau wissen, was genau alles von wo nach wo übertragen werden soll... ich werde den Code entsprechend ändern.... ist in Arbeit.... |
Cool Danke :D
Gibt es denn irgendwo eine empfehlenswerte Seite die man sich anschauen sollte im Bezug auf VBA? |
Hi..
ich habe den neuen Code anhand deiner Bilder gemacht, damit er funktioniert und da ich nicht weiß, wie die anderen Blätter aussehen, musst du in den Monatsblättern jeweils in Spalte Q eine Formel eingeben, die die Werte links von ihr angibt, also z.b. =Summe(B3:P3) aber nur nur bis zum Monatsletzten... also ohne den Gesamtbetrag... in der zeile mit clearcontents musst du das leerzeichen rausnehmen... Private Sub Worksheet_Activate() Dim i, k, l Range("B12: D1000").ClearContents l = 12 For i = 2 To Worksheets.Count For k = 3 To Sheets(i).Cells(100, 17).End(xlUp).Row If Sheets(i).Cells(k, 17).Value > 0 Then Cells(l, 2).Value = Sheets(i).Cells(k, 1).Value Cells(l, 4).Value = Sheets(i).Cells(k, 17).Value l = l + 1 End If Next k Next i End Sub P.S. Herbers Excel Forum (also zum VBA lernen, kann ich dir keine Seite empfehlen, da ich es mir eigentlich über Jahre anhand des Makro-Rekorders, der VBA Hilfe in Excel und in selbst nicht lösbaren Fällen mit erwähntem Forum beigebracht habe) Leider mache ich selbst zu wenig und verlerne es so langsam...:cry: |
Super es Funktioniert! Danke :)
Musste jetz nur die Formel in Q anpassen, so dass ich da bereits ausgerechnet bekomme was drin ist. Funst top, auch wenn ich etwas lösche, dann taucht es nichtmehr auf und die Zeile wird mit anderem aufgefüllt :) |
Zitat:
oops, da fällt mir ein, dass Spalte C auch gelöscht wird. ist das schlimm? sonst musst du den Spender auch auf den Monatsblättern eingeben und ein neuer Code würde die Namen mit übernehmen... Wenn ja, dann füge auf allen Monatsblätten vor Spalte Q eine neue Spalte ein und gib ihr ne Überschrift...dann ersetze den Code in Blatt 1 mit folgendem...(Leerzeichen in clearcontents UND hinter den 8en nicht vergessen) Private Sub Worksheet_Activate() Dim i, k, l Range("B12: D1000").ClearContents l = 12 For i = 2 To Worksheets.Count For k = 3 To Sheets(i).Cells(100, 18 ).End(xlUp).Row If Sheets(i).Cells(k, 18 ).Value > 0 Then Cells(l, 2).Value = Sheets(i).Cells(k, 1).Value Cells(l, 3).Value = Sheets(i).Cells(k, 17).Value Cells(l, 4).Value = Sheets(i).Cells(k, 18 ).Value l = l + 1 End If Next k Next i End Sub aber bitte bedenke, dass du jetzt nicht einfach irgendwo Zeilen oder Spalten einfügst, denn dann wird der Code nicht mehr korrekt funktionieren... |
Zitat:
|
Zitat:
VBA Profis würden das mit Sicherheit anders programmieren und sich über meinen Programmierstil (wenn man das so nennen darf) amüsiert am Boden wälzen...8) Edit: Das würden vermutlich halbwegs gute z.B. PHP (kann bzw. eher konnte ich auch mal nen bisschen) oder C++ Insider genauso sehen |
Also da ja so viel Möglich ist mit Excel mal noch eine Frage.
Wenn ich eine Dynamisches Diagramm erstellen will, was muss ich da denn tun? Der Aufbau ist ähnlich gehalten, nur das es sich hier um nur 6 relevante Spalten handelt welche in Monatlichen Statistiken dargestellt werden und in einem extra Blatt dann zusammengefasst und ausgewertet werden. Brauch ich hier wieder VBA oder geht das auch ohne? |
Zitat:
Also so der aus der Ferne ist das schwer zu beantworten... da brauche ich mehr Input...:eek: Für Diagramme (also grafische Auswertung deiner Daten, wenn ich das richtig verstanden habe) gibt es den Diagramm-Assistenten. Damit kenne ich mich aber wenig bis gar nicht aus. P.S. Hast du dir Post #11 nochmal angesehen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:11 Uhr. |
Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.