Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
940to944
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
940to944
940to944
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Copy Problem

Copy Problem
17.01.2008 16:43:46
m.moog@web.de
Hallo zusammen,
ich habe ein "kleines" Problem, das hier im Forum schon mehrfach besprochen wurde. Es geht darum, dass Excel die Formeln in den Feldern mitkopiert (z.B. zwischen zwei Seiten).
Hier ist der Befehl mit dem ich die gewünschten Felder kopiere.
******************************************************************

Private Sub Warenkorb_Click()
Dim RngTarget As Range
Set RngTarget = Sheets("Warenkorb").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
Range(Cells(29, 3), Cells(29, 10)).Copy RngTarget
End Sub


******************************************************************
Ich hab zwar schon versucht den "PasteSpecial Paste:=xlValues, bla usw..."Befehl einzubinden allerdings ohne Erfolg.
Liegt warscheinlich daran, dass ich schon seit ewigen Zeiten nicht mehr damit gearbeitet habe.
Also falls wer eine Idee hat, wie man in den Code (s.o.) noch den Paste-Befehl reinkriegt, dem wäre ich dankbar.

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Copy Problem
17.01.2008 17:27:00
fcs
Hallo m.moog,
etwa so:

Private Sub Warenkorb_Click()
Dim RngTarget As Range
Set RngTarget = Sheets("Warenkorb").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
Range(Cells(29, 3), Cells(29, 10)).Copy
RngTarget.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub


Gruß
Franz

AW: Copy Problem
17.01.2008 18:01:00
m.moog@web.de
Hallo franz,
jetzt hat es geklappt, dank dir.
Eine Frage hätte ich jetzt noch. Beim ersten kopieren, setzt er das ganze in die 2te Zeile rein. Kann ich die Zeile bestimmen in der er anfängt ? Die Spalte ist klar (Rows.Count, 2)
gruß markus

Anzeige
AW: Copy Problem
18.01.2008 10:45:57
fcs
Hallo markus,
wenn die 1. Zeile auch ausgefüllt werden soll, dann muss du folgende Anpassung machen:

Private Sub Warenkorb_Click()
Dim RngTarget As Range
If Sheets("Warenkorb").Cells(Rows.Count, 2).End(xlUp).Row = 1 And _
IsEmpty(Sheets("Warenkorb").Cells(1, 2)) Then
Set RngTarget = Sheets("Warenkorb").Cells(1, 2)
Else
Set RngTarget = Sheets("Warenkorb").Cells(Rows.Count, 2).End(xlUp).Offset(1, 0)
End If
Range(Cells(29, 3), Cells(29, 10)).Copy
RngTarget.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub


Gruß
Franz

Anzeige
AW: Copy Problem
18.01.2008 11:23:00
m.moog@web.de
Hallo franz,
sorry ich hab die Frage nicht ausführlich genug gestellt. Jetzt noch mal richtig....
Kann ich mit den Befehlen die exakte Spalte und Zeile bestimmen in der die Felder reinkopiert werden z.b. "B4" oder "C21"? Das habe ich bisher noch nicht geschafft.
gruß markus

AW: Copy Problem
18.01.2008 11:34:00
fcs
Hallo Markus,
in deinem Beispiel setzt du RngTarget "einfach" auf die gewünschte Zelleadresse mit einer der _ beiden folgenden Varianten.

iSpalte = 2
lZeile = 4
Set RngTarget = Worksheets("Warenkorb").Cells(lZeile, iSpalte)
Set RngTarget = Worksheets("Warenkorb").Range("B4")

Gruß
Franz

Anzeige
AW: Copy Problem
18.01.2008 13:27:00
markus
Hallo franz
das mit dem exakten adressieren klappt jetzt, allerdings geht jetzt die Ursprungsfunktion nicht mehr.
siehe Beispiel:
Beim Konfigurieren wird ein Bestellcode erstellt, und dieser soll in den Warenkorb eingetragen werden.
Der nächste Bestellcode soll unter dem vorherigen eingetragen werden usw.....
ich würd dir mal die datei schicken, aber die ist größer als 300kb. hast ne e-mail ?
gruß markus

AW: Copy Problem
18.01.2008 14:10:09
fcs
Hallo markus,
wenn du alle Kopiervorgänge in einer Prozedur abwickeln willst, dann muss du immer erst mit Set den Zielbereich setzen, dann den Kopiervorrgang durchführen, den nächsten Zielbereich setzen, kopieren und so weiter.
Du kannst eine Datei auch als ZIP-Datei komprimieren und dann hochladen.
Meine e-mail-Adresse findest du unter Forums-Seiten--Profile--Profilliste, Name: fcs
Gruß
Franz

Anzeige
AW: Copy Problem
19.01.2008 15:41:00
fcs
Hallo Markus,
wenn du die Zeile im Warenkorb in mehreren Kopierschritten mit Daten füllen willst, dann muss du als erstest die nächste freie Zeile bestimmen. Anschließend werden dann die verschiedenen Inhalte in diese Zeile übertragen.
Beispiel, wobei als 1. Zeile die Zeile 4 ausgefüllt wird.

Private Sub Warenkorb_Click()
Dim wksKorb As Worksheet, lZeile As Long
Set wksKorb = Worksheets("Warenkorb")
'nächste auszufüllende Zeile
lZeile = Application.WorksheetFunction.Max(4, _
wksKorb.Cells(Rows.Count, 2).End(xlUp).Row + 1)
Cells(21, 3).Copy 'Kabeltyp übertragen
wksKorb.Cells(lZeile, 2).PasteSpecial Paste:=xlPasteValues
Range(Cells(31, 4), Cells(31, 10)).Copy 'Bestellcode übertragen
wksKorb.Cells(lZeile, 3).PasteSpecial Paste:=xlPasteValues
Cells(31, 13).Copy 'Netto-Endpreis übertragen
wksKorb.Cells(lZeile, 12).PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub


Im Blatt "Warenkorb" solltest du die Formeln in Spalte N prüfen.
In N4 aollte die Formel sein: =L4*M4
Gruß
Franz

Anzeige
AW: Copy Problem
21.01.2008 11:49:00
markus
Servus Franz,
danke dir, jetzt klappt es so wie ich es mir vorstelle.
Jetzt hab ich noch ein Problem, das mit dem Kopieren nichts zu tun hat.
Hast du den "Reset" Button schon mal ausprobiert? Er soll alle Dropdown-Felder wieder in den Ursprungszustand versetzten. Das klappt soweit ganz gut, nur bei einem Feld hat er ein Problem.
Das Feld bei "Montage der Einzughilfe" ignoriert er bzw. meldet er einen Fehler.
Und dann hätte ich noch eine Frage an dich.
Kann ich den Dropdown-Felder eine Abfrage hinterlegen, dass wenn ich z.b. einen Kabeltyp auswähle "XXXXX 12G 9/125µm"", dass bei den Steckertypen nur noch die Stecker mit der Endung (Singlemode) zur Auswahl stehen.
Geht das irgendwie ?
Gruß Markus

Anzeige
AW: Copy Problem
21.01.2008 15:38:15
fcs
Hallo Markus,
das Problem beim Reset rührt daher, dass in dem Tabellenblatt noch einige Comboboxen herumschwirren, deren Höhe auf 0 gesetzt ist und die unter anderem an der ausgeblendeteten Zelle D17 positioniert sind.
Mit folgendem Makro kannst du diese löschen:

Sub DropDownsLoeschen()
Dim sh As Shape, wks As Worksheet
Set wks = Worksheets("Konfigurator_Aussenkabel")
For Each sh In wks.Shapes
If Left(sh.Name, 4) = "Drop" Then
Select Case sh.Name
Case "Drop Down 1", "Drop Down 2", "Drop Down 3", "Drop Down 4", "Dropdown 5"
Case Else
sh.Delete
End Select
End If
Next
End Sub

oder du versuchst es manuell bei aktiviertem Selektions-Modus in der Symbolleiste "Zeichnen".
Vorauswahl der Steckertypen (Singlemode, Multimode) entsprechend Kabeltyp.
Das geht, allerdings muss du da noch etliches in der Tabelle anpassen:
1. Im Blatt "Daten" muss du hinter jedem Kabeltyp in einer Spalte (z.B. M) den Basistyp des Steckers eintragen.
2. für die beiden Comboboxen (Drop Down 1 und Drop Down 2) für die Steckerauswahl muss du unter Formatieren den Zellbereich für die Werteauswahl löschen.
3. für die Combobox zur Kabeltypauswahl (Drop Down 3) muss du ein Makro zuweisen, das bei Wertänderung die Auswahllisten für die beiden Comboboxen zur Steckerauswahl aktualisert.


Sub Dropdown3_BeiÄnderung()
Dim wks As Worksheet, Bereich As Range, cbIndex As Integer, Stecker As String
Dim i As Integer
Set wks = Worksheets("Konfigurator_Aussenkabel")
cbIndex = wks.Shapes("Drop Down 3").ControlFormat.ListIndex
Set Bereich = Worksheets("Daten").Range("M52:M70") 'Bereich mit Steckertyp je Kabeltyp
Stecker = Application.WorksheetFunction.Index(Bereich, cbIndex, 1)
'Auswahlliste für Stecker A aufbereiten
Set Bereich = Worksheets("Daten").Range("D7:D14") 'Stecker A Auswahlbereich
With wks.Shapes("Drop Down 1").ControlFormat
.RemoveAllItems
.AddItem Bereich(1, 1) '-- bitte auswählen --
.AddItem Bereich(2, 1) 'kein Stecker
For i = 3 To Bereich.Rows.Count
If InStr(1, Bereich(i, 1), Stecker) > 0 Then
.AddItem Bereich(i, 1)
Else
.AddItem ""
End If
Next
.ListIndex = 1
End With
'Auswahlliste für Stecker B aufbereiten
Set Bereich = Worksheets("Daten").Range("D42:D49") 'Stecker B Auswahlbereich
With wks.Shapes("Drop Down 2").ControlFormat
.RemoveAllItems
.AddItem Bereich(1, 1) '-- bitte auswählen --
.AddItem Bereich(2, 1) 'kein Stecker
For i = 3 To Bereich.Rows.Count
If InStr(1, Bereich(i, 1), Stecker) > 0 Then
.AddItem Bereich(i, 1)
Else
.AddItem ""
End If
Next
.ListIndex = 1
End With
End Sub

In der angehängten Datei hab ich dies mal so umgesetzt.
Es ist aber nicht ganz ideal gelöst, da dann, wenn ein Leereintrag gewählt wird.trotzdem ein Wertangezeigt wird. Um dies zu bereinigen müsste aber sehr viel verändert werden.
https://www.herber.de/bbs/user/49234.zip
Gruß
Franz

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige