Anzeige
Archiv - Navigation
1144to1148
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

Spalten nach Abfrage übertragen

Spalten nach Abfrage übertragen
Roland
Hallo Herbianer,
ich habe folgendes Problem:
In täglich gelieferten Kundenlisten stehen folgende Daten:
Artikelnummer, Benennung, Lagerbestand. Leider stehen diese aber nicht immer in den gleichen Spalten, da in den Aufstellungen noch weitere Daten enthalten sind.
Gibt es eine Möglichkeit mit einem Abfragefenster ("In welcher Spalte steht die Artikelnummer?" usw.) die Spalten zu bestimmen, die in eine vorgegebene Datei übertragen werden sollen.
Danke und Gruß
Roland
AW: Spalten nach Abfrage übertragen
22.03.2010 14:52:27
Oberschlumpf
Hi Roland
Ich bin ziemlich sicher, dass es für deine Frage eine/mehrere konstruktive Antworten gibt.
Aber um nicht "ins Blaue" programmieren zu müssen (nur DU weißt, wie deine Datei aussieht/aussehen soll), wär es schön, wenn du uns eine (Bsp)Datei zur Verfügung stellst, in der es so aussieht, wie es gerade ist...und vielleicht in einem weiteren Tabellenblatt....wie es aussehen soll.
Ciao
Thorsten
p.s die Datei im xls-Format, da vielleicht viele antworten möchten, aber bestimmt viele noch kein Excel 2007 haben
AW: Spalten nach Abfrage übertragen
22.03.2010 15:03:06
Michael
Du könntest mit einer kleinen Schleife einfach die verschiedenen Bezeichnungen suchen und dann dann die Spaltennr speichern.
Dann hast gleich alle Spalten automatisch und brauchst kein Abfragefenster
Das sollte auch mit VBA-Bescheiden klappen :-)
So etwa
dim cArt as integer
dim cBez as integer
.
.
.
a=1
Do
if cells(1,a)="Artikelnummer" then cArt = a
if cells(1,a)="Benennung" then cBen = a
a=a+1
loop until ...
Anzeige
AW: Spalten nach Abfrage übertragen
22.03.2010 15:13:02
Roland
Hallo Michael,
die Antworten kommen aus aller Herrenländer, sodass ich manchmal nur wegen des Spalteninhaltes weiss, welche Spalte ich benötige. Die Überschriften sind teilweise russisch, chinesisch usw.
Trotzdem erst mal danke. Deinen Vorschlag werd ich zumindest so mal mit einfliessen lassen.
Gruß
Roland
AW: Spalten nach Abfrage übertragen
22.03.2010 15:09:20
Roland
Hi Thorsten,
danke für den Tipp.
Also hier noch mal mit Dateien.

Die Datei https://www.herber.de/bbs/user/68727.xls wurde aus Datenschutzgründen gelöscht

ist die Kundendatei, die mir täglich zugeschickt wird.
In dieser Datei stehen in den Spalten A,C und F die Daten, die ich später benötige.
In einer vorgegebenen Datei möchte ich jetzt ein Makro starten, das mich fragt: In welcher Spalte steht die Artikelnnummer? "A" In welcher Spalte steht die Benennung? "C" und In welcher Spalte steht die Lagermenge "F". Diese Spalten sollen dann in meine Datei übertragen werden damit es am Ende so aussieht.
https://www.herber.de/bbs/user/68728.xls
Danke für eure Hilfe
Roland
Anzeige
Problem bei Upload
22.03.2010 15:20:31
Oberschlumpf
Hi Roland
Leider gibt es ein Problem mit beiden Dateien.
Nach Start erscheint diese Meldung:
Userbild
Wenn ich dann auf OK klicke, sieht der Inhalt so aus:
Userbild
Was der Grund dafür ist, weiss ich leider nicht.
Hast du vielleicht eine nicht-deutsche Excelversion - z Bsp chinesisch, dass die Umwandlung ins xls-Format nicht funktioniert?
Ciao
Thorsten
AW: Problem bei Upload
22.03.2010 15:27:04
Roland
Hi Oberschlumpf,
wahrscheinlich hat das einfache umschreiben von xlsx auf xlx nicht funktioniert.
Also hier noch mal mit Dateien.
https://www.herber.de/bbs/user/68731.xls ist die Kundendatei, die mir täglich zugeschickt wird.
In dieser Datei stehen in den Spalten A,C und F die Daten, die ich später benötige.
In einer vorgegebenen Datei möchte ich jetzt ein Makro starten, das mich fragt: In welcher Spalte steht die Artikelnnummer? "A" In welcher Spalte steht die Benennung? "C" und In welcher Spalte steht die Lagermenge "F". Diese Spalten sollen dann in meine Datei übertragen werden damit es am Ende so aussieht.
https://www.herber.de/bbs/user/68732.xls
Danke für eure Hilfe
Roland
Anzeige
Dateien sind ok - nur erst mal zur Info - owT
22.03.2010 15:32:40
Oberschlumpf
hier mein vorschlag dazu.
22.03.2010 15:39:44
Tino
Hallo,
teste mal diese, vielleicht passt es Dir so.
Sub Test()
Dim rngSpalten As Range

On Error Resume Next
 Set rngSpalten = _
    Application.InputBox("Markiere die Spalte Artikelnummer,Benennung u. Lagerbestand" & vbCr & _
                         "(verwende Strg+linke Maustaste um mehrere auszuwählen)", Type:=8).EntireColumn
On Error GoTo 0

If Not rngSpalten Is Nothing Then
    With ThisWorkbook.Sheets("Tabelle2") 'Ziel wo die Daten hin sollen 
       For Each rngSpalten In rngSpalten.Areas
            Select Case rngSpalten(1, 1).Value
                Case "Artikelnummer": rngSpalten.Copy .Range("A1")
                Case "Benennung": rngSpalten.Copy .Range("B1")
                Case "Lagerbestand": rngSpalten.Copy .Range("C1")
            End Select
       Next rngSpalten
    End With
End If

End Sub
Gruß Tino
Anzeige
AW: hier mein vorschlag dazu.
22.03.2010 16:00:16
Roland
Servus Tino,
der erste Test ist super verlaufen.
Werd morgen Bescheid geben, aber ich glaub so krieg ich das hin.
Vielen Dank für die superschnelle Lösung.
Gruß
Roland
AW: Problem bei Upload
22.03.2010 16:19:06
fcs
Hallo Roland,
hier noch eine Variante mit Datei-Öffnen-Dialag für Quelle und Auswahl der Spalten durch Eingabe in Inputbox.
Gruß
Franz
Sub DatenHolen()
Dim wbZiel As Workbook, wksZiel As Worksheet, vAuswahl
Dim wbQuelle As Workbook, wksQuelle As Worksheet
Dim sArtikel$, sBenennung$, sBestand$, LetzteZeileQ As Long, LetzteZeileZ As Long
'Quelldatei auswählen
vAuswahl = Application.GetOpenFilename(Filefilter:="Excel (*.xl*),*.xl*", _
Title:="Bitte Datenquelle öffnen")
If vAuswahl = False Then Exit Sub
Set wbZiel = ActiveWorkbook
Set wksZiel = wbZiel.Worksheets("Tabelle1")
'Quelldatei öffnen
Set wbQuelle = Application.Workbooks.Open(Filename:=vAuswahl, ReadOnly:=True)
Set wksQuelle = wbQuelle.Worksheets(1)
'Spalten abfragen
vAuswahl = InputBox("In welcher Spalte steht die Artikelnummer - Bitte Buchstabe(n) eingeben?" _
, _
"Datenimport - Spalte Artikel-Nr.")
If vAuswahl = "" Then Exit Sub
sArtikel = vAuswahl
vAuswahl = InputBox("In welcher Spalte steht die Benennung - Bitte Buchstabe(n) eingeben?" _
& vbLf & vbLf & "Artikelnummer - Spalte:  " & sArtikel, "Datenimport - Spalte Benennung.")
If vAuswahl = "" Then Exit Sub
sBenennung = vAuswahl
vAuswahl = InputBox("In welcher Spalte steht der Lagerbestand - Bitte Buchstabe(n) eingeben?"  _
_
& vbLf & vbLf & "Artikelnummer - Spalte:  " & sArtikel & vbLf _
& "Benennung - Spalte    :  " & sBenennung, "Datenimport - Spalte Lagerbestand.")
If vAuswahl = "" Then Exit Sub
sBestand = vAuswahl
With wksQuelle
'Letzte Zeile i Quelltabelle
LetzteZeileQ = .Cells.SpecialCells(xlCellTypeLastCell).Row
'Letzte Datenzeile in Zieltabelle
With wksZiel
LetzteZeileZ = .Cells(.Rows.Count, 1).End(xlUp).Row
If LetzteZeileZ = 1 And IsEmpty(.Range("A1")) Then LetzteZeileZ = 0
End With
'Datenkopieren
.Range(sArtikel & 1 & ":" & sArtikel & LetzteZeileQ).Copy _
Destination:=wksZiel.Cells(LetzteZeileZ + 1, 1)
.Range(sBenennung & 1 & ":" & sBenennung & LetzteZeileQ).Copy _
Destination:=wksZiel.Cells(LetzteZeileZ + 1, 2)
.Range(sBestand & 1 & ":" & sBestand & LetzteZeileQ).Copy _
Destination:=wksZiel.Cells(LetzteZeileZ + 1, 3)
End With
'Quelldatei wieder schliessen
wbQuelle.Close savechanges:=False
'Zieldatei anzeigen
wbZiel.Activate
wksZiel.Activate
Cells(LetzteZeileZ + 1, 1).Select
End Sub

Anzeige
AW: Problem bei Upload
23.03.2010 10:15:45
Roland
Hallo Franz, hallo Tino,
vielen Dank für die schnelle und professionelle Hilfe.
Ich hab die Abfragen jetzt in mein Programm eingebaut und es läuft wie gewünscht.
Viele Grüße
Roland

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige