Hilfe mit Excel - Daten mit BB auslesen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Sereyanne

Betreff: Hilfe mit Excel - Daten mit BB auslesen?

BeitragMi, Okt 07, 2009 16:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi Leute,

diesmal hab ich ein Excel-Problem, was sicherlich mit Excel zu lösen ist. Nur kenn ich mich damit einfach nicht gut genug aus und finde im Web keine passende Hilfe.
Wenn hier jemand meint, Excel in Bezug auf Verknüpfungen zu anderen Tabellen und Dateien sehr gut zu beherrschen, bin ich gerne bereit, mein Problem auch ohne BB zu lösen.

Kann ich mit BB (Bplus schätze ich mal) Daten aus Excel auslesen? Möglichst umkompliziert darstellen?
Freue mich wie immer über jede ernst gemeinte Antwort.

Werde auch gerne ausführlicher sofern es interessant wird... Smile

Hoffe mein Beitrag stört hier nicht....

Gruß Sereyanne

Eingeproggt

BeitragMi, Okt 07, 2009 18:43
Antworten mit Zitat
Benutzer-Profile anzeigen
"Kann ich mit BB"
Ja

"Möglichst umkompliziert"
Nein

Ich kann dir sagen wie es gehen würde, aber die Sache ist so dermaßen komplex dass sich noch niemand rangewagt hat.
Also du müsstest nach den Excel-Spezifikationen die Datei selbst auslesen. Spezifikationen findet man auf www.wotsit.org
Sind aber sicher einige hundert Seiten ud dur wirst schon bei den ersten 10 scheitern. (Das sag ich mal so aus Erfahrungen die ich mit dem Word-doc-Format gemacht habe)
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

tedy

BeitragMi, Okt 07, 2009 18:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Es hatte sich da schonmal wer rangewagt und es sogar geschafft ...
Ich mein es stand mal in irgendeinem WL

Also es ist durchausmachbar
01010100 01100101 01000100 01111001 00100000 00111010 01000100

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMi, Okt 07, 2009 18:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Dateiformate von Microsoft sind mit sehr viel Balast belastet und zum Teil auch mit Absicht extra kompliziert aufgebaut, damit MS das ''Vorrecht'' in diesem Bereich beibehält. Falls es aber nur darum gehet Daten über Excel einzugeben um diese später mit BB zu laden, kann ich dazu nur raten, ein anderes Dateiformat zu wählren.

Das geht im übrigen auch über den Weg von Excel, aber auch mir OpenOffice und ähnliche. Dazu einfach sich die Dateiformate und dessen Datensortierung von .csv, .html, .txt oder .xml anschauen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

Eingeproggt

BeitragMi, Okt 07, 2009 19:05
Antworten mit Zitat
Benutzer-Profile anzeigen
ja, derjenige der es in seinem WL-Eintrag geschafft hat hat *.csv ausgelesen.
Ich rede von *.xls
Wobei wie hectic schon sagt - xml oder csv sind sinnvollere "Kommunikationsdateiformate" und auch in Excel zu öffnen wenn es darum geht.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9

Midimaster

BeitragSa, Okt 10, 2009 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Möchstest Du die Daten aus einem laufenden Excel-Programm anzapfen, oder nur Excel-Dateien mit Blitzbasic bearbeiten?

Sollen die Daten nur gelesen und dann in Blitzbasic verarbeitet und neu dargestellt werden. Oder sollen die Daten in der Excel-Datei auch durch Blitzbasic manipuliert zurückgespeichert/-gesendet werden können.

Der Weg, die Dateien zunächst in Excel abzuspeichern (möglichst in einem neutralen Format z.B. cvs) ist leicht zu bewerkstelligen, solange es um Buchstaben und Zahlen geht. Auch Bilder sind noch möglich. Allerdings kommt das Ganze an seine Grenze, wenn es um in Excel eingebettete Objekte oder Dokumente geht.

More input please....

Starwar

BeitragSo, Okt 11, 2009 8:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Viele Office Versionen haben eine Art "Visual Basic" eingebaut. Wie weit das jedoch Daten weiterleiten kann weiß ich nicht...
MFG

TimBo

BeitragSo, Okt 11, 2009 8:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

ja ich muss dazu sagen, dass ich nicht das xls Format studiert habe, sondern einfach mit csv einen Converter geschrieben habe.

Mit csv kann ich sagen , was in welcher Zelle stehen soll, aber nicht, wie sie formatiert ist.

Grüße
TimBo
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31
hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht.
 

Krischan

BeitragDi, Okt 13, 2009 11:14
Antworten mit Zitat
Benutzer-Profile anzeigen
CSV auslesen? Kein Problem, damit lese ich bei meinem jetzigen Project die Levels aus CSV-Dateien aus und verwende Excel als Mapeditor Very Happy. Die Funktion gibts im BB.com Codearchiv. Hier mal ein Beispiel mit einer beliebigen CSV-Datei (hier: Blutzuckermessung meines Kaninchens).

Die Funktion SplitCSVLine liefert dabei die Anzahl der Elemente pro Zeile zurück und packt den Inhalt der Spalten in das Array CSV$, das sollte so dimensioniert sein, dass es alle Spalten abdeckt (256 ist schon recht viel). Die ausgelesenen Daten kann man dann je nach Verwendung weiter in Types oder Arrays packen. Der Delimiter ist üblicherweise das Semikolon, es kann aber auch ein anderer verwendet werden.

daten.bb
Code: [AUSKLAPPEN]
Graphics 800,600,32,2

Dim CSV$(256)

Local h%=ReadFile("daten.csv")

While Not Eof(h)
   
   arguments=SplitCSVLine(ReadLine(h),";")
   
   For i=0 To arguments-1
      
      Text (100*i),zeile,CSV(i)
   
   Next
   
   zeile=zeile+12
   
Wend

WaitKey

End

End


Function SplitCSVLine%(l$,delim$)
   
   Local param%=0,quote%=False,loopy%,bit$
   
   CSV$(param)=""
   
   For loopy=1 To Len(l$)
      
      bit$=Mid$(l$,loopy,1)
      
      If bit$=Chr$(34) Then
         
         If quote=False Then quote=True Else quote=False
         
      ElseIf bit$=delim$ And quote=False Then
         
         param=param+1
         CSV$(param)=""
         
      Else
         
         CSV$(param)=CSV$(param)+bit$
         
      End If
   Next
   
   Return param
   
End Function


daten.csv
Code: [AUSKLAPPEN]
Datum;Gewicht;Blutzucker1;Blutzucker2;Dosis1;Dosis2
01.01.2009;1344;0;531;1,00;1,00
02.01.2009;1356;583;600;1,00;1,00
03.01.2009;1340;0;0;1,00;1,00
04.01.2009;1346;0;574;1,00;1,00
05.01.2009;1346;481;600;1,00;1,00
06.01.2009;1350;531;542;1,00;1,00
07.01.2009;1340;0;514;1,00;1,00
08.01.2009;1376;0;534;1,00;1,00
09.01.2009;1375;463;493;1,00;1,00
10.01.2009;1370;0;600;1,00;1,00
11.01.2009;1350;0;600;1,00;1,00
12.01.2009;1390;513;495;1,00;1,00
13.01.2009;1370;481;481;1,00;1,00
14.01.2009;1377;500;455;1,00;1,00
15.01.2009;1392;554;562;1,00;1,00
16.01.2009;1390;537;500;1,00;1,00

Starwar

BeitragDi, Okt 13, 2009 20:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Mal offtopic: Warum misst du den Blutzucker deines Kaninchens?
MFG
 

Krischan

BeitragDi, Okt 13, 2009 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Weil er Diabetes hat, seit zwei Jahren. Da muss man jeden morgen und abend das Ohr anpieksen, einen Tropfen Blut auf den Streifen vom Messgerät packen und dann bekommt man einen Wert, nach dem man die Insulindosis bestimmt, die er dann in den Nacken bekommt. Macht man das nicht steht er mit einer Pfote im Grab, und da stand er schon zwei mal (zu viel Insulin = zu wenig Blutzucker = Krämpfe, Koma, Tod und zu wenig Insulin = zu viel Blutzucker = Krämpfe, Koma, Tod). Seitdem wir das so konsequent durchziehen gehts ihm gut. Und damit wir Trends erkennen packe ich das alles in eine Exceltabelle als Rohdaten und mache ein Diagramm daraus.

Starwar

BeitragDi, Okt 13, 2009 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Diabetes beim Hasen? oO
Das ist gewiss ne teure Sache. Aber ich finds gut, dass du dich so um ihn kümmerst <3 Very Happy
Und die Statistik ist ja nicht uninteressant.
MFG
 

Krischan

BeitragDi, Okt 13, 2009 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Nicht so teuer wie man denkt. Das normale Futter was die zwei weghauen kostet wesentlich mehr Shocked

Sereyanne

BeitragDo, Okt 15, 2009 16:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Wow! Shocked
Ich liebe dieses Forum.
Danke an alle!!! Razz
Ich hatte auch in einem Excel-Forum gepostet, aber keine Antwort erhalten.
Erst mal: Entschuldigt die Verzögerung. Ich war im Urlaub und kam nicht online.

@hectic:
Zitat:
Die Dateiformate von Microsoft sind mit sehr viel Balast belastet und zum Teil auch mit Absicht extra kompliziert aufgebaut, damit MS das ''Vorrecht'' in diesem Bereich beibehält.

Da hast du natürlich Recht. Microschrott halt...

@Midimaster:
Zitat:
Möchstest Du die Daten aus einem laufenden Excel-Programm anzapfen, oder nur Excel-Dateien mit Blitzbasic bearbeiten?

Es sollen Daten aus mehreren Arbeitsmappen (nämlich Adressen) in eine einzige Mappe übertragen werden.

Okay ich glaube es ist an der Zeit, ausführlicher zu werden.
Ich habe hier pro Woche ca. 60 Bestellungen, jede in einer eigenen Arbeitsmappe mit allen erforderlichen Daten. Am Ende der Woche sollen einige Daten in einer Mappe zusammengefasst werden, also in Spalte A die Auftragsnummer, in Spalte B das Auftragsdatum, in Spalten C - G die Adresse und in Spalte F der Umsatz. Diese Daten befinden sich jeweils in einem Blatt in den anderen Mappen. Falls jemand was damit anfangen kann, so sieht eine "normale" Verknüpfung zu diesen Daten aus:

='C:\Desktop\kigas\[Name des Bestellers.xls]Auftrag zur Lieferung'!$A$14

Nun muss ich diese Verknüpfung in alle 6 Felder reinkopieren. Zeitraubend. Noch schlimmer wird es, da sich jede Woche die Adressen ändern. Ich wollte mir einfach die Zeit sparen, in jede Zelle zu klicken und folgendermaßen zu ändern:

='C:\Desktop\kigas\[Name des nächsten Bestellers.xls]Auftrag zur Lieferung'!$A$14

Die Zellen (A14 und so weiter) bleiben ja immer gleich, bloß der Name der verknüpften Excel-Tabelle ändert sich gezwungenermaßen.
Ich würde gerne in irgendeiner Form die Namen der Besteller aufreihen (wie, ist ganz egal! direkt in Excel, in den Texteditor, ist mir völlig wurscht) und dann mit Exel darauf zugreifen, so nach dem Motto:

='[Liste der Besteller - erster Besteller]Auftrag zur Lieferung'!$A$14
='[Liste der Besteller - zweiter Besteller]Auftrag zur Lieferung'!$A$14

dann brauch ich nämlich nächste Woche nicht mehr den Namen jedes Bestellers 6 x zu ändern, sondern nur noch 1 x in der Liste.

Versteht das jemand...?

Würde mich über so viele Antworten wie vorher sehr freuen!

Gruß Sereyanne

mpmxyz

BeitragDo, Okt 15, 2009 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Das, was du machen möchtest, habe ich zwar nicht so ganz verstanden, aber ich glaube, dass "Microsoft Access" genau das Richtige für dich ist.
Damit kannst du Datenbanken erstellen.
Für dein Problem hast du dann eine Tabelle für die Kunden, eine für die Aufträge und eventuell weitere Tabellen.
Um die Daten einfach eingeben und anzeigen zu können, kannst du dann "Formulare" nutzen.
Mit diesen kannst du dir dann auch zu den Aufträgen den Namen des Kunden ansehen.
Und es gibt noch viele weitere Funktionen!

Aber in dieses Programm musst du dich dann erst einarbeiten.
Wenn du es machst, könntest du dir einiges an Aufwand sparen.
Und wenn es nichts kosten soll, dann nehme einfach "OpenOffice.org Base".
Das ist das gleiche in violetter Farbe.

mfG
mpmxyz
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer

Sereyanne

BeitragDo, Okt 15, 2009 16:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke. Access ist mir bekannt, aber was, wenn deine Firma dir vorgibt, mit Excel zu arbeiten? Wäre schön das Problem damit lösen zu können.

Midimaster

BeitragFr, Okt 16, 2009 0:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Access wäre wahrscheinlich eine perfekte Lösung für einen erfahrenen Access-Profi, aber für Dich ein zu großer Aufwand an Vorarbeit.


Also, so wie ich das rauslese, sind das keine komplizierten Mappen, sondern jede Mappe hat im Prinzip nur ein Tabellenblatt. Und auf dem stehen die Daten von ca 60 Kindergärten(?), die alle eine Bestellung (Fotos?) aufgegeben haben?

Die Daten bestehen tatsächlich nur aus Texten oder Zahlen? Keine Fotos? Keine Verknüpfungen mit anderen Dokumenten? Gut!

Dann ist ein Export der Daten sehr leicht möglich. Was spricht gegen ein einfaches Markieren der Daten und anschließendes Einfügen in das neue Tabellenblatt? Soll der Bezug zum Original-Tabellenblatt wohl erhalten bleiben?

Du sprichst von "...Am Ende der Woche sollen einige Daten ...". Also nicht alle? Wonach wird dies entschieden? Ist es ein Suchkriterium, nach dem hier selektiert wird, oder sollen die Daten nur neu sortiert werden, so dass z.B. alle Umsätze des selben Kindergartens auf einer Tabelle erscheinen? Oder kann nur der Nutzer von Hand entscheiden, wer auf die neue Tabelle soll oder nicht?

Und eine ganz wichtige Frage. Bist Du selbst derjenige, der diese wöchentliche Arbeit dann immer durchführt, oder soll es auch ein x-beliebiger Dummi später alleine hinbekommen? Hierzu wäre wahrscheinlich eine qualitativ hochwertige Lösung vorzuziehen.
 

BIG BUG

BeitragFr, Okt 16, 2009 1:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit VBA (das in Excel integrierte Visual Basic) lässt sich sowas gut programmieren.

Habe mal kurz Google bemüht(die 2. Antwort sollte genau das sein was Du brauchst): http://www.supportnet.de/threads/1395501
B3D-Exporter für Cinema4D!(V1.4)
MD2-Exporter für Cinema4D!(final)

Sereyanne

BeitragFr, Okt 16, 2009 8:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Midimaster hat Folgendes geschrieben:
Also, so wie ich das rauslese, sind das keine komplizierten Mappen, sondern jede Mappe hat im Prinzip nur ein Tabellenblatt.

Naja, jede Mappe hat 3 Blätter, aber die relevanten Daten werden immer nur aus einem der drei Blätter benötigt.

Zitat:
Die Daten bestehen tatsächlich nur aus Texten oder Zahlen? Keine Fotos? Keine Verknüpfungen mit anderen Dokumenten?

Ja.

Zitat:
Was spricht gegen ein einfaches Markieren der Daten und anschließendes Einfügen in das neue Tabellenblatt?

Im Prinzip würde es natürlich auch per Copy&Paste gehen. Aber dann fängt Excel wieder an, Formatierungen der kopierten Felder zu übernehmen, dann kann ich alles wieder neu einstellen, scheiß Arbeit jedesmal. Außerdem würde es viel schneller gehen, wenn ich eine Liste mit den Dateinamen erstellen könnte, auf die Excel dann zugreift. Ich würde einfach alle Namen in eine Liste kopieren, was schneller gehen würde als alle 6 Daten aus jedem Blatt in eine Zeile des Berichts zu kopieren.

Zitat:
Du sprichst von "...Am Ende der Woche sollen einige Daten ...". Also nicht alle? Wonach wird dies entschieden?

Das sind jedesmal die gleichen Daten, siehe meinen Post:
Sereyanne hat Folgendes geschrieben:
in Spalte A die Auftragsnummer, in Spalte B das Auftragsdatum, in Spalten C - G die Adresse und in Spalte F der Umsatz.


Zitat:
Und eine ganz wichtige Frage. Bist Du selbst derjenige, der diese wöchentliche Arbeit dann immer durchführt, oder soll es auch ein x-beliebiger Dummi später alleine hinbekommen?

Momentan bin ich die Einzige, aber wer weiß, ob das später mal wer anders macht. Eigentlich übernehme ich gerade die Arbeit meines Vaters, vielleicht gefällt ihm meine Methode ja, wenn er wieder gesund ist. Hat immer alles mit der Hand geschrieben....


@BIG BUG: Wow, das sieht krass aus. Da hab ich jetzt die nächste Stunde(n) was zu tun....

Vielen Dank an alle!

edit: @BIG BUG: Mit deinem Link und über ein Makro hat es jetzt (fast) geklappt. Bin schon ein ganzes Stück weiter.
Vielen Dank nochmal!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group