SoftMaker.de

Deutschsprachiges Diskussionsforum
Aktuelle Zeit: 24.05.2013 23:59:32

Alle Zeiten sind UTC + 1 Stunde




Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Tabelle flexibel kopieren
BeitragVerfasst: 10.12.2010 13:53:54 
Offline

Registriert: 02.02.2004 17:21:37
Beiträge: 34
Im Planmakerforum wurde mir mal gesagt, mein Problem liese sich mit BM lösen. Nur leider hab ich keinen blassen Schimmer vom Programmieren und mein rumstolpern in der Hilfefunktion hat nur meinen Frustlevel gesteigert. Ohne Schlüsselwörter zu kennen findet man leider nix... Im Forum hab ich auch nix gefunden was hilfreich ausgesehen hätte.

Das Problem: Ich exportiere Tabellen aus einer Warenwirtschaft. Die Tabelle ist recht fix, nur die Position kann sich verändern. Die linke obere Ecke ist der Suchstring. Ich bräuchte also eine Funktion, die auf Blatt "Auswertung" z.B. den Inhalt der Zelle A3 "Hans Mustermann" abgreift und auf Blatt "Daten" dann die Spalte A nach dem ersten Auftauchen von "Hans Mustermann" sucht z.B. A75 und von dort aus den Bereich 15 Spalten und 13 Zeilen nimmt (also A75:O86) und nach Blatt "Auswertung" einfügt.

So, ich hoffe irgendein Crack kann mir helfen zumindest mal den Fuss in die Tür zu kriegen. Dann kann ich mich schon selber weiterarbeiten.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tabelle flexibel kopieren
BeitragVerfasst: 10.12.2010 15:35:13 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 959
Die Zellen in Spalte "A" vergleichen mit "Hans Mustermann" bis die Zelle erreicht ist.

Zuerst zeile festlegen
Zitat:
zeile = pm.ActiveSheet.Selection.row
und "spalte = "A""
dann in einer Schleife "while -> loop" mit
Zitat:
DO while pm.ActiveSheet.Cells.Item(zeile,spalte).Value <> "Hans Mustermann
durchlaufen. Damit hast du die richtige Zelle identifiziert und kannst entsprechend hochrechnen.

dann mit
Zitat:
pm.ActiveSheet.Range(xx).Copy
in die Zwischenablage kopieren und dann auf die aufnehmende Tabelle gehen und
Zitat:
pm.ActiveSheet.Insert
aus deer Zwischenablage einfügen.

Das ist etwas knapp, weil ich im Moment keine Zeit habe. Wenn du noch Fragen hast, melde dich. Mit einer kleinen Beispieltabelle könnte man dich auch etwas besser unterstützen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tabelle flexibel kopieren
BeitragVerfasst: 10.12.2010 23:30:42 
Offline

Registriert: 02.02.2004 17:21:37
Beiträge: 34
So, 2,5h später bin ich zumindest soweit, daß "zeile" & "spalte" labels sind, die nicht ersetzt werden sollen und ich bei do noch ein loop einfügen muss, dann hängts aber. Ohne loop kommt noch error, mit loop isser wohl inner endlosschleife und es hilft nur BM beenden.

Code:
zeile = pm.ActiveSheet.Selection.row
'zeile = "19"
spalte = "A"
DO while pm.ActiveSheet.Cells.Item(zeile,spalte).Value <> "Mustertwo"
loop
'pm.ActiveSheet.Range("A1:C12").Copy
'pm.ActiveSheet.Insert


Dateianhänge:
Mustermann.pmd [16.5 KiB]
34-mal heruntergeladen
Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tabelle flexibel kopieren
BeitragVerfasst: 11.12.2010 12:58:04 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 959
Ich habe dir mal ein Script geschrieben.

Anmerkungen:

Die Spalte "A" ist die fixe Ausgangsspalte, kann selbstverständlich auch flexibel gestaltet werden, Cursor sollte auf "A1" stehen, kann man im Script aber auch fix festlegen.
Zum Testen habe ich eine neue Tabelle als 4. Tabelle eingefügt, beim Testen evtl. ändern, in der das Einfügen in Zelle "A1" beginnt.
dann wieder Rücksprung in Ausgangstabelle

z.Zt. wird nur Spalte "A" kopiert, wenn der Test für dich ok ist, kannst du mit den 15 Spalten selbst programmieren oder dich wieder melden.

****** Beginn Code

Dim pm as Object

Set pm = CreateObject("PlanMaker.Application") ' Verbindung aufbauen
pm.Application.Visible = True

dim zeile,spalte as integer

zeile = pm.ActiveSheet.Selection.row
spalte = pm.ActiveSheet.Selection.Column

DO while pm.ActiveSheet.Cells.Item(zeile,spalte).Value <> "Mustertwo"
zeile = zeile + 1
loop

spaltea = "A"

zeilea = zeile
zeileb = zeile + 13

r1 = spaltea & cstr(zeilea)
r2 = spaltea & cstr(zeileb)

pm.ActiveSheet.Range(r1,r2).copy

pm.ActiveWorkbook.Sheets(4).Activate ' Tabelle in die eingefügt wird

pm.ActiveSheet.Range("A1").paste
pm.ActiveWorkbook.Sheets(3).Activate ' zurück in Ausgangstabelle

Set pm = Nothing ' Verbindung aufheben

************ Ende Code


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tabelle flexibel kopieren
BeitragVerfasst: 11.12.2010 15:09:41 
Offline

Registriert: 02.02.2004 17:21:37
Beiträge: 34
Ok, das funktioniert schonmal.

Ich weiss ja nicht ob das so sonneklar ist, aber als noob hat mich das grade eine halbe Stunde beschäftigt: In Ausgabesheet4 hab ich das Ergebnis gelöscht und dazu A1:A13 markiert und del gedrückt. Danach das skript geändert in meine Datensheet auf A1 gesprungen und nochmal F9 gedrückt. Ergebnis, es wurde nur Zelle A1 kopiert in Sheet4. Erst nachdem ich die Markierung gelöscht habe hat er mir dann ordentlich die komplette Tabelle reinkopiert...

Aber erstmal Danke, hat mir sehr geholfen.

Eine Frage hätt ich aber noch. Gibts zum Start des Skripts keine andere Möglichkeit als über weiteres aufzurufen und noch zu wissen wo es liegt und welchen Namen es hat? So ein Button wär ganz praktisch.
Edit, Hyperlink hab ich mal gesetzt, geht aber nur das skript auf statt zu auszuführen, naja immerhin etwas.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tabelle flexibel kopieren
BeitragVerfasst: 11.12.2010 17:09:01 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 959
Natürlich kann man auch mit Button oder Befehlstasten arbeiten, ist alles beschrieben im Handbuch PLANMAKER anb Seite 392.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tabelle flexibel kopieren
BeitragVerfasst: 11.12.2010 21:26:39 
Offline

Registriert: 02.02.2004 17:21:37
Beiträge: 34
Nee, mit Button meinte ich eigentlich etwas, das im Worksheet verankert ist. Also mit schliessen der Datei wieder verschwindet bzw. beim Öffnen auf anderem Rechner auch zur Verfügung steht (ohne das jetzt auf jedem PC einzustellen)

Die Symbole sind ja sozusagen Bestandteil des Programms oder kann man die mit den Arbeitsblättern verlinken? Einige xls bringen zwar auch eigene Menüs mit, aber in PM hab ich das noch nicht gesehen.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tabelle flexibel kopieren
BeitragVerfasst: 12.12.2010 09:34:33 
Offline

Registriert: 09.03.2009 17:32:30
Beiträge: 470
Was vielleicht gehen würde, wenn du in einer Tabellenzelle eine Verknüpfung anlegst. Direkt kann man wohl die BasicMaker-Datei nicht aufrufen. (oder es gibt einen Weg dazu, den ich nicht kenne.)
Man kann sich über eine Batch-Datei helfen, die ungefähr diesen Inhalt haben könnte:
Code:
"C:\Programme\SoftMaker Office 2010\basicmaker" /s "C:\Dokumente und Einstellungen\User\Eigene Dateien\Temp\Name.bas"
auf die verlinkt werden könnte.
Allerdings muss - wie auch die BasicMaker-Datei auf jeden Rechner am selben Platz zu finden sein.


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Tabelle flexibel kopieren
BeitragVerfasst: 12.12.2010 11:24:24 
Offline
SoftMaker Volunteers
SoftMaker Volunteers

Registriert: 06.02.2007 14:01:47
Beiträge: 959
Zitat:
Die Symbole sind ja sozusagen Bestandteil des Programms oder kann man die mit den Arbeitsblättern verlinken?
Ich mache das so, dass ich mit Befehlstasten arbeite, dann wird die Symbolleiste nicht "verunziert"
Das öffnen des Dokumentes auf einem anderen Rechner kann ich hier nicht testen, vermute aber, dass das Symbol dann auch erscheint. Teste doch mal.


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 9 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.
Sie dürfen keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de