Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1240to1244
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen kopieren

Zeilen kopieren
Hansueli
Hallo die Spezialisten
Folgende Frage zum Thema Zeilen kopieren!
Ich möchte eine Zeile vom Tabellenblatt 1 (Eingabe allgemein) z.B in Tabellenblatt 2 (Offerten) oder Tabellenblatt 3 (Aufträge) usw. kopieren.
Durch das Anwählen eine Kürzels für die entsprechende Definition in der Spalte A der Tabelle 1 erfolgt die Selektierung in welche Tabelle die Daten verschoben werden müssen.
Wie kann ich das für diese Mehrfachauswahlen (Offerten =O, O1, O2, O3 oder A, A1, A2, A3) erreichen?
Das heisst alles O's Tabelle=Offerten und alle A's in Tabelle= Auftrag.
Es gibt anschliessend noch mehrere Tabellen wie Lieferscheine, Teilzahlungen und Rechnungen.
Vorerst aber bleiben wir mal bei den drei Grundtabellen Eingabe, Offerten und Aufträge.
Für eure Hilfe bin ich euch sehr Dankbar und Grüsse euch freundlich
Hansueli

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zeilen kopieren
11.12.2011 14:14:38
hary
Hallo Hans
geht am besten mit Case. Nach diesem Motto.

Dim a As String
With Sheets("Eingabe allgemein")
Select Case Left(.Cells(1, 1), 1) 'In SpalteA hier A1 ist das Kürzel nimmt immer nur den  _
linken ersten Buchstaben
Case "O": a = "Offerten"
Case "A": a = "Aufträge"
Case Else
End Select
.Range("B1").Copy Sheets(a).Range("B1")
End With

gruss hayr
AW: Zeilen kopieren
11.12.2011 17:36:00
Hansueli
Hallo hayr
Besten Dank für die Antwort.
Habe noch nicht so ganz verstanden wie ich das umsetzten soll.
Es soll die ganze Zeile inkl. dem Kürzel kopiert werden.
Zusätzlich müssen die Varianten O1 usw auch einbeziehen.
Das ganze soll bei falscher Anwahl auch umgekehrt eventuell aus Offerten direkt in den Auftrag oder aus den Aufträgen zurück zu den Offerten usw verschoben werden.
Darf ich dich um einen weiteren Tipp bitten
Eventuell gibt mir Sepp oder Nepumuk und Hejo noch einige Tipps
Besten Dank
Hansueli
Anzeige
AW: Zeilen kopieren
11.12.2011 21:49:11
Hansueli
Hallo Zusammen
Anbei noch meine Testmappe mit meinen Überlegungen.
Würde mich über eine Antwort sehr freuen.
Wer hilft mir dabei die Lösung zu finden.
https://www.herber.de/bbs/user/77930.xlsm
Bin für jeden Tipp sehr dankbar
Freundliche Grüsse
Hansueli
AW: Zeilen kopieren
12.12.2011 07:38:58
hary
Hallo Hans
Weiss nicht ob ich alles getestet habe. Geht jedenfalls wenn Du in SpalteA was auswaeehlst.
Soll von Offerten auch in Tab. "Auftraege" kopiert werden?
https://www.herber.de/bbs/user/77936.xlsm
gruss hary
Anzeige
AW: Zeilen kopieren
12.12.2011 08:13:11
Hansueli
Hallo hary
Ganz herzlichen Dank
Bist ja ein richtiger Profi auch diesem Gebiet.
Hätte da noch zwei - drei Anliegen wenn ich dich nochmals stören darf.
1. Darf ich dich um einige Kommentarzeilen bitten (dass auch ich langsam verstehe wie solche Profis das umsetzten)
2. Es wäre schön, wenn bei den Offerten die Zeilen zu den Aufträgen oder den Absagen kopiert werden, sich diese Zeilen in den Offerten löschen würden. Somit ist der aktuelle Stand zwischen Auftragseingang, Absagen und Offerten immer gegeben
3.Was ist wenn jemand die Zeilen falsch anklickt. Ist es möglich die Zeilen an den Ursprungsort zurück zu verschieben?
4.Kann ich über eine Userform oder Inputbox die Positionen oder eventuell auch automatisch bei jeder Hauptnummer mit "0" beginnen lassen?
Beispiel:
1000.01
1000.02
usw.
Für deine sehr grosse Hilfe bin ich dir wirklich sehr dankbar und feue mich auf deine Antwort
Freundliche Grüsse
Hansueli
Anzeige
AW: Zeilen kopieren
12.12.2011 08:33:35
hary
Hallo Hans
Bist ja ein richtiger Profi 

Nee, mach ich zum Zeitvertreib also Laie.
zu 1. geht klar
zu 2. in Arbeit
zu 3. wird kaum gehen da es fuer VBA keine Undo Aktion gibt(evtl eine Abfrage einbauen: sind sie sicher dass...)
zu 4. mal schauen wie.
gruss hary
Frage mal auf offen
AW: AW:testmappe
12.12.2011 20:45:51
Hansueli
Guten Abend Hary
Ganz herzlichen Dank für deine Hilfe. Funktioniert ja schon super die Sache mit den Anwahlen (kopieren).
Nun hätte ich noch einige weiteren Fragen (bitten) an dich. Hoffe du hast noch Geduld mit mir.
Würde mich natürlich auch gerne erkenntlich zeigen. In welcher Form auch immer.
1. Ich kann die O, O1, O2, O3 (Offerten) wuderbar auf die nächste Tabelle übernehmen.
(Ist es möglich mit dem gleichen Code auch die D, D1, D2, D3 sowie KV, KV1, KV2, KV3 zu übernehmen?)
Ist es möglich die Case Variante zu erweitern und die Codes analog aufzubauen (jede IF and ESLE
Verzweigung) seperat oder gibt es eine besser Variante?
2. Wenn ich jetzt die Anwahl bei den kürzeln als erstes Ausführe kopiert das Makro die Zeile bevor die
Daten abgefüllt werden (natürlich ist das mein Überlegungsfehler). Können wir die Abfrage bei der
Eingabe am Schluss einfügen aber bei den nächsten Tabellen am Anfang?
Oder sollen wir das über einen Button eventuell in einer Userform ausführen?
Was ist sinnvoller nach deinem Erachten?'
3. Nun ist es ja so, dass sobald ich einen neuen Offerteintrag erstellen möchte, ich den Buchstaben O
wähle (Problem von oben ausgelassen). Danach schreibt es die Zeile in die Offerten.
Wenn ich die Offerte nachbessern muss, erfolgt die Anwahl mit dem Kürzel O1.
Ist es nun möglich die Zeile mit dem O in den Offerten durch die Zeile mit dem O1 zu überschrieben?
Die Grundeinträge mit den Varianten bleiben ja immer noch bei der Eingabe bestehen.
Dadruch kann immer den aktuelle Offertbestand, den aktuelle Auftragsbestand sowie die Absagen
überwachen.
4. Ist es Grundsätzlich möglich um dem Punkt 3. von heute Morgen aus dem Wege zu gehen die
ausgewählte Zeile (Zelle mit Kürzel für die Auswahl zu sperren)?
5. Weitere Fragen zu diesem Codeabschnitt "C" und "D"
.Range("C" & i) = Cells(ActiveCell.Row, 2) & "." & Format(WorksheetFunction.CountIf(.Range("B:B"), Left(Cells(ActiveCell.Row, 2), 4)), "00")
Cells(ActiveCell.Row, 3).Resize(1, 5).Copy .Range("D" & i) 'Bereich SpalteA bis B
Habe das nicht Nachvollziehen können (Sorry bin wirklich nicht super auf dem Gebiet von VBA)
Ich hoffe du hast noch Geduld mit mir.
Beste Grüsse und ein herzliche Dankeschön
Hansueli
Anzeige
AW: fragen und antworten
13.12.2011 07:23:30
hary
Hallo
zu 1.
geht so. Einfach den case erweitern. Da immer der erste linke Buchstabe genommen wird.

Case "O", "K": a = "Offerten"

dann noch diese zeile aendern. Fuehrt den Code aus wenn erste linke Buchstabe nicht X

If ActiveSheet.Name = "Eingabe" And Left(ActiveCell, 1)  "X" Then

zu 2.
Ja, mit eingabe vom Preis!? oder aber die Auswahl aus SpalteA in die letzte Spalte setzen. Also erst die Eingaben machen, dann auswaehlen.
zu 3.
Koennen mehrere O's vorkommen? Also heisst das uebersetzt: Erst setze ich ein O, fuer eine einbesserung der Offerte setze ich O1 usw. ein? Analog fuer D und K
zu 5.
mit der ersten Zeile errechne ich die Anzahl der Eintraege der Hauptnummern. Die Anzahl setze ich dann hinter die Hauptnummer.
Also Bsp. Habe die Hauptnummer 1000 in SpalteB im Blatt Eingabe. Diese Nummer wird ja nach Blatt Auftraege SpalteB kopiert. Da steht jetzt 1000. Jaetzt zaehle ich wieviel Eintraege in SpalteB gleich 1000 sind. Hier ist sind es 1 . Dann kommt in SpalteC rein: 1000.01 also Hauptnummer und Anzahl(im Format 00).
"Würde mich natürlich auch gerne erkenntlich zeigen."
Da ich es nur aus Hobby und in der wenigen Freizeit mache, reicht mir aus wenn's funzt. ;-)
ansonsten wenn schnell gemacht und professionel sein soll.
https://www.herber.de/develop.html
gruss hary
Anzeige
AW: fragen und antworten
13.12.2011 21:58:53
Hansueli
Guten Abend Hary
Besten Dank für deine hilfreichen Ausführungen. Es ist doch sehr nett von dir, dass du einem Anfänger in Sachen VBA helfen willst und natürlich auch kannst. ich finde es in der heutigen Zeit besonder schön, dass es Menschen gibt die dem nächsten zur Hand gehen wollen auch ohne Vergütung.
Aus deisem Grunde kommt mein Angebot.
Und nur zu den Fakten:
1.Ist ok und habe ich Versucht und klappt (natürlich nach deiner Hilfe)
2.Das mit den Eingaben im Bezug auf die letzte Spalte find ich super :-) das heisst nur wie setze ich das
nun in die Wirklichkeit um :-) habe es Versucht aber eben, muss noch weiter knobeln.
3. Genau das ist meine Überlegung (wie du interpretiert hast O, D, K)kannst du mir da bitte weiterhelfen?
5. Ich habe das Verstanden aber trotzdem eine Frage! Ich möchte in der Position nur noch das 01, 02 usw, stehen (Hauptnummer ist ja in Spalte definiert), muss noch knobeln.
Allerbesten Dank wenn du mir nochmals unter die Arme greifen könntest.
Gibt es eigentlich für solche verschachtelte Codes auch Literatur?
Gruess Hansueli
Anzeige
AW: fragen und antworten
14.12.2011 06:07:48
hary
Hallo
Komme wahrscheinlich erst am WE dazu mich damit weiter zu befassen. Mal schauen was sich machen laesst.
Wegen der Position.
nimm statt

.Range("C" & i) = Cells(ActiveCell.Row, 2) & "." & Format(WorksheetFunction.CountIf(.Range("B:B" _
), Left(Cells(ActiveCell.Row, 2), 4)), "00")

diese Zeile

.Range("C" & i) = "'" & Format(WorksheetFunction.CountIf(.Range("B:B"), Left(Cells(ActiveCell. _
Row, 2), 4)), "00")

gruss hary
AW: Testmappe2
14.12.2011 14:27:26
hary
Hallo Hans
Doch noch ein wenig Zeit gehabt. Jetzt kannste testen. ;-)
https://www.herber.de/bbs/user/77980.xlsm
gruss hary
Anzeige
AW: Testmappe2
15.12.2011 20:58:22
Hansueli
Hallo Hary
Sorry aber ich bin in den letzten zwei Tagen nicht dazugekommen.
Besten Dank für deine tolle Arbeit. Ich hoffe ich darf dich noch ab und zu fragen und um Hilfe bitten.
Hätte noch drei Fragen
1.Nummer mit Buchstaben ist das VBA technisch einen grossen Aufwand
die Kürzelbezeichung vor die Nummer zu stellen?
z.B O-11000-8
2. Kann ich jetzt einen Autofilter auf die Nummernsetzen die nicht den Buchstaben sondern die Zahlenreihen immer sortiert in allen Sheets?
z.B A-12000-8
D-12000-3
O-12001-2
usw.
3. Letzte Frage ich hoffe ich nerve dich nicht langsam!!
Was heisst das genaue ".Resize(1, 5)"
Nochmals herzlichen Dank ist echt super so!!
Hansueli
Anzeige
AW: Testmappe2
16.12.2011 08:21:22
hary
Hallo
zu 1. Na ja, hoechstens in eine eigene Zelle. da die original Nummer fur die Aenderungen und zum kopieren gebraucht werden.
zu 2. Da kommt das problem von 1. zum tragen. Du kannst nur nach Buchstaben oder Zahlen sortieren.
Also auch eine eigene Spalte notwendig
zu 3. Resize macht folgendes. Vom der ausgangszelle den Bereich erweitern. Also 1 bedeutet die gleiche Zeile, die 5 fuenf spalten nach rechts.
zum probieren nimm eine leere Tabelle und dieses Makro:

Sub Ueben()
Cells(1,1).Resize(1,5).select 'experimentiere mit der 1 und 5 in der Resizeklammer
End Sub

Gruss hary
Dieser Thread geht bald ins Archiv.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige