www.mikrocontroller.net

Forum: PC-Programmierung Copybefehl in Excel?


Autor: mueller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also einfaches ......???? Problem.
Ich habe eine Tabelle in der ab und zu in einer Spalte Null
vorkommt. Wenn Null dann Coppy  Inkrementierend ganze (betreffende) 
Zeile auf andere Tabelle.
Irgendwie bin ich zu doof, aber ich finde nichts wie man das Coppy 
hinbekommt.

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hä?
Nix verstanden!
Gehts besser zu erklären?

Autor: mueller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn in Spalte A = Null dann
Coppy  Inkrementierend (also in A1; A2; A3 usw.)
ganze (betreffende)Zeile (in der in Ax eine Null war)
in eine andere Tabelle(Blatt).

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu musst Du zu der antiken Schreibweise wechseln =Auswählen("ZS1")

Autor: mueller (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hmm also gut, versuche ich es mal in Prosa ;-)
Habe eine Materialliste mit Stückzahl in Spalte A
Wenn ich bestellen will suche ich immer nach den Bestand =0
und die dann gleich als neue (Bestell-)Tabelle um diese ins Fax zu
legen. Es geht um eine Bestand von ca. 600 Posten, so das ein Manuelles
durchsehen lange dauert und für eine Datenbank ist es
eigentlich noch zu wenig.

Autor: tex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Hmm also gut, versuche ich es mal in Prosa ;-)
Ganze Sätze, die Dein problem beschreiben, täten es auch schon
>>Habe eine Materialliste mit Stückzahl in Spalte A
ungewöhnlich, aber egal
>>Wenn ich bestellen will suche ich immer nach den Bestand =0
Kann man von Hand machen, kann man mit einem Filter machen
>>und die dann gleich als neue (Bestell-)Tabelle um diese ins Fax zu
>>legen.
Da beitet sich ein Filter dann doch sehr an
>>Es geht um eine Bestand von ca. 600 Posten, so das ein Manuelles
>>durchsehen lange dauert und für eine Datenbank ist es
>>eigentlich noch zu wenig.

Autor: Thomas Strauß (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich erstelle seit einiger Zeit hobbymäßig Excel-Tabellen für einen 
wavetable-Synthesizer und spare mir viel Arbeit mit Makros. Diese laufen 
auf Visual-Basic Sprache (womit eben Excel - Anwendungen arbeiten).

Es ist möglich, Tastatur-Makros aufzunehmen und die unter einem Namen zu 
speichern. Ausgelöst wird so ein Makro bsp. mit Strg+e.

Um zu sehen, was sich hinter diesem Makro verbirgt, kann man mit 
Alt+F11-Taste auf die entsprechende Ansicht wechseln. Unter Ansicht - 
Projektexplorer kann man sehen, woraus die aktuelle Arbeitsmappe 
besteht.

Tabelle1 anklicken -> dann steht da z.B. Modul1 oder Modul2. Mit dem 
Mauszeiger daraufgehen und rechte Taste drücken -> Code anzeigen. Der 
erscheint rechts im Fenster.

Diesen Code kann man natürlich auch verändern, um z.B. Laufzeitfehler 
auszubremsen. Ich benutze da etwas Intuition und Versuch und Irrtum.

Um jetzt in einer Spalte alle Zellen, deren Wert = 0 ist, in ein anderes 
Tabellenblatt zu kopieren, bietet sich ein Visual Basic Modul 
(Quelltext) an, das genau dieses macht. Das heisst, auf Tastendruck von 
Str und e würden jetzt genau diese Zellen, deren Wert Null ist, 
nacheinander in ein zweites Tabellenblatt kopiert werden 
(vollautomatisch).

Ich habe so ein Modul noch nicht angelegt, bin auch kein Excel-Profi, 
aber sollte ich ein passendes Modul "hinkriegen", melde ich mich!

Anbei noch ein Link 
http://www.office-loesung.de/ftopic114046_0_0_asc.php


Gruß Thomas

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK, hier mal ein Vorschlag, wie man es machen kann:

Sub Search_Zero()

Dim i As Integer
Dim j As Integer
Dim k As Integer
Dim l As Integer
Dim cache As Variant

l = 605         'Anfang 1. Zeile Bestelliste

For i = 1 To 601
    j = ActiveSheet.Cells(i, 1)
    If j = 0 Then
        For k = 1 To 20
            cache = ActiveSheet.Cells(i, k)
            ActiveSheet.Cells(l, k) = cache
        Next k
        l = l + 1
    End If
Next i

End Sub


Tabelle öffnen->Extras->Makro->Visual Basic Editor->Arbeitsmappe 
markieren->rechte Maustaste->Einfügen->Modul-> Code oben einfügen und 
anpassen

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Achso, eine kurze Funktionsbeschreibung:

Makro läuft Zeile 1 bis 601 durch, und schaut nach d. integer-Wert in 
Spalte A. Wenn es Null beträgt, so werden die Inhalte der ersten 20 
Spalten in der betreffenden Zeile kopiert, und zwar unten nach der 
Tabelle, beginnend bei Zeile 605. Alle Parameter können natürlich 
angepasst werden.

Klar, es geht auch wesentlich eleganter, also an alle Rummeckerer: Macht 
es besser, Rahmt den Code dann ein und hängt es an die Wand :-)))))))

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.