Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Problem mit löschen/copy/Paste
#1
Hallo zusammen
Ich brauche wieder einmal Hilfe

Ich weiss, dass folgendes Thema schon mind.1000x ausgelutscht wurde. aber ich habe nichts gefunden für mein Problem. Ich kopiere von einer anderen Mappe einige Sachen und füge die in mein Arbeitsblatt Range ("A1") mit folgendem Code ein 
PHP-Code:
ActiveSheet.Paste Cells(11

Funktioniert auch gut
Jetzt mein Problem. Sobald ich vorher folgende Prozedur durchlaufen lasse
PHP-Code:
With ActiveSheet
.Range("A1:D40").ClearContents
.Range("A1:D40").Interior.ColorIndex xlNone

End With 
Funktioniert die Paste Funktion nicht mehr, da das Kopierte aus dem Speicher verschwindet. Ich muss aber vorher den Bereich A1:D40 löschen.
Und der kopierte Bereich soll immer in "A1" eingefügt werden. Der zu kopierende Bereich ist variabel. tlw A1 bis C20 oder B2 bis D15 usw.
Vielleicht hat jemand eine Idee wie ich den festgelegten Bereich lösche und die "Paste Funktion" funktioniert ohne dass der "Kopiespeicher" gelöscht wird. Entschuldigt für das Wort "Kopiespeicher". Ich weiß aber nicht wie das heißt. Achso. Ursprünglich habe ich mit 
Code:
SendKeys ("^v")


  gearbeitet. Nur hat mir dieses die Numlocktaste am Firmen PC ausgeschaltet (Warum auch immer)

LG
Michael

Ich glaube (bin mir aber noch nicht sicher) dass ich die Lösung gefunden habe

statt
.Range("A1:D40").Clear
verwende ich
.Range("A1:D40") = ""

Der Fehler ist (momentan) weg

Trotzdem danke an alle

LG
Michael
Antworten Top
#2
Hallo

bei ActiveSheet.Paste kopierst du immer alle Zellformate, Innenfarben usw. mit. Wenn du nur die Werte kopieren willst benutze diesen Befehl:
.Range("A1").PasteSpecial xlPasteValues
Application.CutCopyMode False

mfg Gast 123
Antworten Top
#3
Hallo Michael,

es passiert öfter, dass der NumBlock bei SendKeys umgeschaltet wird. Ich habe mir für solche  Fälle eine Sub gebaut, die das ggf. wieder richtig stellt.
Hier ein Beispiel:

Code:

Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _
          pbKeyState As Byte) As Long

Sub TestSendKeys()
  SendMyKeys "^v"
End Sub

Sub SendMyKeys(Was As String)
' Nummernblockeinstellung merken, SendKeys abschicken,
' Nummernblock ggf. wiederherstellen
' GetKeyboardState Keys(0) Keyboard-Array füllen
  Dim Keys(0 To 255) As Byte, bNumBlock As Byte

  GetKeyboardState Keys(0): bNumBlock = Keys(vbKeyNumlock)
  SendKeys Was
  GetKeyboardState Keys(0)
  If bNumBlock <> Keys(vbKeyNumlock) Then SendKeys "{NUMLOCK}"
End Sub



Falls Du nur Werte kopieren möchtest, kannst Du diese auch ohne Kopie direkt übertragen:

Hier ein Beispiel:
Code:

Sub Nur_Werte_Kopieren()
' Kopiert nur Werte
  With Sheets("Datenbank").Range("B2:D7")
       ActiveSheet.Range("A1").Resize(.Rows.Count, .Columns.Count).Value = .Value
  End With
End Sub

_________
viele Grüße
Karl-Heinz
[-] Folgende(r) 1 Nutzer sagt Danke an volti für diesen Beitrag:
  • Eizi100
Antworten Top
#4
Hallo Karl-Heinz
Danke für Deine Hilfe.
Den Code zur Wiederherstellung kenne ich (Ich glaube den habe ich sogar von dir geklaut). und dieser hat mir alles wieder richtig eingestellt.

den anderen Code werde ich heute noch testen

LG
Michael
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste