Anzeige
Archiv - Navigation
1068to1072
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

Texte aus anderem Tabellenblatt kopieren

Texte aus anderem Tabellenblatt kopieren
22.04.2009 23:35:00
Stefan
Hallo zusammen,
in einer Tabelle habe ich mir im Tabellenblatt 'Umwandeln' für verschiedene Textmanipulationen Formeln eingerichtet. Die Texte, die verändert werden sollen (Artikelbezeichungen) bekomme ich in Form einer Exceltabelle und ich ziehe mir das Tabellenblatt 'Artikel' als neues Tabellenblatt in meine Datei.
Im Blatt 'Artikel' sind die zu verändernden Texte in Spalten angeordnet:
z.B. in A1 - A21, B1 - B13, C1 - C32 usw.
Es geht also immer von Zeile 1 los bis maximal Zeile 32.
Nun gehe ich hin und kopiere mir die zu verändernden Texte aus dem Blatt 'Artikel' in die Spalte A des Blatts 'Umwandeln'. Durch die Formeln in diesem Blatt verändere ich sie, bestimmte Teile fallen weg und andere müssen umgestellt werden. Das klappt alles soweit ganz gut, nur diese Reinkopiererei nervt noch.
Nun habe ich folgende Idee: in A34 von 'Umwandeln' möchte ich die Bezeichnung der nächsten zu manipulierenden Spalte des Blatts 'Artikel' eintragen. Wenn also gerade die Spalte J verändert wurde möchte ich in A34 als nächste Spalte K eingeben. Entweder nach Eingabe von K + Returntaste oder durch Klick auf eine Schaltfläche sollen dann die Texte (egal, wieviele Zeilen es sind, max. 32 s.o.) aus der Spalte K des Blatts 'Artikel' in die Spalte A des Blatts 'Umwandeln' kopiert werden.
Wie kann ich das realisieren?
Danke für Hinweise.
Gruß,
Stefan

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Texte aus anderem Tabellenblatt kopieren
23.04.2009 10:43:06
Heiko
Hallo Stefan,
versuch's mal damit:
in einem modul unter "Module":
sub datenkopieren
dim spalte as string
spalte=worksheets("Umwandeln").range("A34")
worksheets("Artikel").range(spalte & "1:" & spalte & "32").copy
worksheets("Umwandeln").paste destination:=worksheets.range("A1")
application.cutcopymode=false
End Sub


im tabellenblatt "Artikel":


Private Sub worksheet_change(byval target as range)
if target.address="$A$34" then
if target="K" then
call datenkopieren
end if
end if
End Sub


grüße
heiko

Anzeige
AW: Texte aus anderem Tabellenblatt kopieren
23.04.2009 10:55:01
fcs
Hallo Stefan,
hier mein Vorschlag. Dabei wird die Eingabe in Zelle A34 zusätzlich auf zulässige Werte geprüft.
Den Code muss du im VBA-Editor unter der Tabelle Umwandeln einfügen.
Gruß
Franz

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Spalte As Long
'Eingabe in Zelle A34 überwachen
If Target.Address = "$A$34" Then
Application.EnableEvents = False
'Eingabe in Großbuchstaben Wandeln
Target.Value = UCase(Target.Value)
Application.EnableEvents = True
If MsgBox(Prompt:="Inhalte aus Spalte """ & Target.Text _
& """ aus Blatt ""Artikel"" kopieren?", _
Buttons:=vbQuestion + vbYesNo, _
Title:="Artikel Daten umwandeln") = vbYes Then
'Nummer Spalte aus Eingabebuchstabe(n) ermitteln
Spalte = fncSpalte(Target.Text)
If Spalte > 0 Then
'Alte Inhalte in Spalte A löschen
Range(Cells(2, 1), Cells(33, 1)).ClearContents
'Inhalte aus gewählter Spalte kopieren
With Worksheets("Artikel")
.Range(.Cells(1, Spalte), .Cells(33, Spalte).End(xlUp)).Copy
End With
'Werte ab Zelle A2 einfügen
Range("A2").PasteSpecial Paste:=xlPasteValues
Else
MsgBox "unzulässige Eingabe, max. 3 Großbuchstaben zulässig!"
End If
End If
End If
End Sub
Function fncSpalte(strText As String) As Long
'Ermittelt aus den eingegebenen Spalten-Buchstaben die Nummer der Spalte
Dim Pos As Long
Select Case Len(strText)
Case 1 To 3
For Pos = 1 To Len(strText)
If fncTestAbisZ(strBuchstabe:=strText) Then
fncSpalte = fncSpalte + _
(Asc(Mid(strText, Pos, 1)) - Asc("A") + 1) _
* (Asc("Z") - Asc("A") + 1) ^ (Len(strText) - Pos)
Else
fncSpalte = 0
Exit For
End If
Next
Case Else
fncSpalte = 0
End Select
If fncSpalte > Me.Columns.Count Then
MsgBox fncSpalte & ": eingegebene Spalte ist größer als Anzahl Spalten im Blatt!"
fncSpalte = 0
End If
End Function
Function fncTestAbisZ(strBuchstabe As String) As Boolean
'Prüfen ob Zeichen = Großbuchstabe A bis Z
If Asc(strBuchstabe) >= 65 And Asc(strBuchstabe) 


Anzeige

345 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige