Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
19.05.12, 00:01
|
#1
|
Newbie
Registriert seit: Jun 2011
Beiträge: 26
Bedankt: 306
|
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
|
|
|
19.05.12, 00:17
|
#2
|
Chuck Norris sein Vater
Registriert seit: Sep 2010
Ort: 6 Feet Under
Beiträge: 7.585
Bedankt: 5.694
|
Excel ist ein Programm und kein Betriebssystem!
VERSCHOBEN!
|
|
|
19.05.12, 10:29
|
#3
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.433
Bedankt: 4.849
|
Hi...
mit Excel geht fast alles... 
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...
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
19.05.12, 16:34
|
#4
|
Newbie
Registriert seit: Jun 2011
Beiträge: 26
Bedankt: 306
|
Danke für die hilfe, nur wo muss der code denn rein? Bin nich grad so belesen was excel programmierung angeht :-P
|
|
|
19.05.12, 16:44
|
#5
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.433
Bedankt: 4.849
|
Hi...
Entwicklertools... Code anzeigen...
Edit: Beim Speichern musst du dann aber als Dateiendung .xlsm auswählen
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
20.05.12, 09:57
|
#6
|
Newbie
Registriert seit: Jun 2011
Beiträge: 26
Bedankt: 306
|
Hi,
also ich hab das nun alles eingegeben und es zerschießt mir das Layout und ich erhalte nur Fehler
Eingabe:
Anzeige:
Blatt eins normalerweise:
Blatt 2- 13:
Kein Plan ob ich das richtig gemacht habe oder obs einfach nur nich klappt .
Gibt es noch andere Möglichkeiten?
|
|
|
20.05.12, 10:57
|
#7
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.433
Bedankt: 4.849
|
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....
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
20.05.12, 11:22
|
#8
|
Newbie
Registriert seit: Jun 2011
Beiträge: 26
Bedankt: 306
|
Cool Danke 
Gibt es denn irgendwo eine empfehlenswerte Seite die man sich anschauen sollte im Bezug auf VBA?
|
|
|
20.05.12, 11:35
|
#9
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.433
Bedankt: 4.849
|
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...
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
20.05.12, 14:48
|
#10
|
Newbie
Registriert seit: Jun 2011
Beiträge: 26
Bedankt: 306
|
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
|
|
|
20.05.12, 15:04
|
#11
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.433
Bedankt: 4.849
|
Zitat:
Zitat von sixfinger
Funst top, auch wenn ich etwas lösche, dann taucht es nichtmehr auf und die Zeile wird mit anderem aufgefüllt 
|
jo... das geht mit Änderungen genauso, weil jedesmal wenn du Blatt 1 aktivierst, werden die alten Werte komplett gelöscht und neu eingelesen...
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...
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
20.05.12, 15:47
|
#12
|
Chuck Norris sein Vater
Registriert seit: Sep 2010
Ort: 6 Feet Under
Beiträge: 7.585
Bedankt: 5.694
|
Zitat:
Zitat von eitch100
also ich bin jetzt auch nicht der Super-Profi in Excel
|
Ja ne is klar! Kein Profi?
|
|
|
20.05.12, 16:19
|
#13
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.433
Bedankt: 4.849
|
Zitat:
Zitat von Undertaker2011
Ja ne is klar! Kein Profi? 
|
Danke... aber wenn ich bedenke, was ich schon mal konnte und was man mit Excel alles anstellen kann, dann stimmt das leider... Der Code da oben ist für wirklich gute VBA Leute nix anderes als 2 Schleifen mit einer If-Anweisung... also sieht für "Nicht-Eingeweihte" verzwickt aus, ist aber nicht mehr als Kindergeburtstag...
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...
Edit: Das würden vermutlich halbwegs gute z.B. PHP (kann bzw. eher konnte ich auch mal nen bisschen) oder C++ Insider genauso sehen
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
20.05.12, 19:44
|
#14
|
Newbie
Registriert seit: Jun 2011
Beiträge: 26
Bedankt: 306
|
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?
|
|
|
20.05.12, 20:06
|
#15
|
Agnostiker
Registriert seit: Dec 2009
Beiträge: 4.433
Bedankt: 4.849
|
Zitat:
Zitat von sixfinger
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?
|
Also allein über Formeln kann man natürlich auch vieles regeln... es ist dann sehr oft praktisch irgendwo Zwischenergebnisse anzulegen, mit denen man dann weiterarbeiten kann. Den VBA Code kann man auch mehr oder weniger dynamisch gestalten; ist aber ziemlich umständlich... (zumindest so wie ich es mache  )
Also so der aus der Ferne ist das schwer zu beantworten... da brauche ich mehr Input... 
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?
__________________
Der Klügere gibt nach... deshalb regieren die Dummen die Welt
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:20 Uhr.
().
|