Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
244to248
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
244to248
244to248
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

makro anpassen

makro anpassen
14.04.2003 12:42:37
Joachim
Hallo,

ich habe folgendes Makro hier im Archiv gefunden:

--------------------------------------------------------------
Sub Multiopen()
Dim arrFilenames As Variant
Dim wkbArr As Workbook
Dim wkbBasis As Workbook
Set wkbBasis = ActiveWorkbook

Selection:
' Zu öffnende Dateien erfragen
arrFilenames = Application.GetOpenFilename( _
"Exceldateien (*.xls), *.xls, Alle Dateien (*.*), *.*", 1, _
"Exceldateien auswählen...", MultiSelect:=True) ' Ausgewählte Dateien des Öffnen-Dialoges in Feld ablegen
If VarType(arrFilenames) = vbBoolean Then
If MsgBox("Sie haben keine Dateien ausgewählt. Möchten sie das Makro beenden?", vbYesNo, "Frage") = vbNo Then
GoTo Selection
Else
Set wbkBasis = Nothing
Exit Sub
End If
End If

Application.ScreenUpdating = False
'Die vom Makro vorgenommenen Tätigkeiten
'bleiben zur Geschwidigkeitssteigerung unsichtbar

For i = 1 To UBound(arrFilenames) ' Durchläuft die Anzahl der Dateien
'Wenn Datei noch nicht geöffnet
If FileOpenYet(DIR$(arrFilenames(i))) = False Then
'dann öffnen
Workbooks.Open FileName:=arrFilenames(i)
Else
'oder aktivieren
Workbooks(DIR$(arrFilenames(i))).Activate
End If
Set wkbArr = ActiveWorkbook
'-------------------------------------------------------
'hier kommt dann der Code rein, der die ausgewählten Dateien
'betrifft. Die Ursprungsdatei ist über wbkBasis ansprechbar.
wkbBasis.Worksheets(1).Cells(i, 1).value = wkbArr.Worksheets(1).Range("B1").value
wkbBasis.Worksheets(1).Cells(i, 2).value = wkbArr.Worksheets(2).Range("C34").value
wkbBasis.Worksheets(1).Cells(i, 3).value = wkbArr.Worksheets(3).Range("S32").value
wkbArr.Close SaveChanges:=False 'Datei schließen
Set wkbArr = Nothing
'-------------------------------------------------------
Next i
Set wkbArr = Nothing
'Ursprüngliche Datei wieder aktivieren
wkbBasis.Activate
Set wkbBasis = Nothing 'Die Variable zurücksetzen
'und den Monitor aktivieren
Application.ScreenUpdating = True
End Sub


Function FileOpenYet(FileName As String) As Boolean
'eine Funktion, die Prüft ob eine Datei schon geöffnet ist.
Dim s As String
On Error GoTo Nonexistent
s = Workbooks(FileName).name
FileOpenYet = True
Exit Function
Nonexistent:
FileOpenYet = False
End Function


--------------------------------------------------------------------------------

Dieses öffnet ein bestehendes Excel File und kopiert die Inhalte bestimmter Zellen in, wiederum fest bestimmbare, Zellen des aktuellen Worksheets.
Die Problemstellung, die ich lösen möchte ist ganz ähnlich wie die im obigen Makro durchgeführte Lösung.
Allerdings möchte jeweils nebeneinanderliegende Spalten von einem bestehenden File das aktuelle worksheet kopieren. Hierbei möchte ich gern auswählen können, welche Spalten ich kopieren möchte. Also in der Art: "Welche Spalten möchten Sie kopieren?" -> C und D ....
Leider bin ich absoluter Anfänger im Bereich von VBS und wäre echt dankbar, wenn Ihr Euch meines Problemchens annehmen könntet!

Danke Jo


10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: makro anpassen
14.04.2003 13:24:28
Nike

Hi,
für jedes Blatt ne andere Auswahl
oder einmal für alle?

Bye

Nike

Re: makro anpassen
14.04.2003 13:43:10
Joachim

*freu* Endlich erreich ich den/die Verfasser/in des Originalprogramms!

Hallo,

ich möchte bei jedem Blatt die beiden gleichen Spalten auswählen. Die Spaltenauswahl sollte aber nicht fest vorgegeben sein, da von Zeit zu Zeit auch andere Spalten zum "Herauskopieren" auswählbar sein müssen.
Es ist so, dass die Inhalte der einzelnen Zellen immer in die gleichen Spalten des aktiven worksheets kopierte werden (Spalte A und Spalte B). Jedoch muss die Möglichkeit bestehen, dass ich auch auf möglichst einfachem Wege auswählen kann, welche Spalten des Ursprungsfiles kopiert werden sollen.

Danke für Deine/Ihre Hilfe.

Gruß Jo

Anzeige
Re: makro anpassen
14.04.2003 13:49:12
Nike

Hi,
wenn du immer in die gleichen Zellen reinkopierst,
überschreibst du doch, oder?
Oder verwendest du pastespecial mit operation:=xlAdd
Oder kopierst du von deiner Ursprungsmappe in die ausgewählten
hinein?

Bye

Nike

P.S. Kannst ruhig beim Du bleiben ;-)


Re: makro anpassen
14.04.2003 14:00:50
Joachim

hmmm, *smile*

es ist so, dass ich nur eine Datei einlese und aus dieser die beiden Spalten (es sind nur jeweils 2 von 18 möglichen Spalten) auswählen möchte, welche mich interessieren. Daraufhin werden die Inhalte dieser beiden Spalten, welche mittels Benutzervorgabe abänderbar sein sollen, in die Spalten A und B des aktuellen Worksheets kopiert. In diesem Worksheet werden die eingefügten Daten dann weiterverarbeitet.
Das Programm muss also lediglich die Daten aus dem einen File herauskopieren (es sind also nicht meherer Files gleichzeit und darum wird auch nichts überschrieben).

Ich hoffe ich konnte es einigermaßen verständlich schildern... *unsicherguck*

Wie gesagt: ich bin absoluter VBS Anfänger und kämpfe mich hier mit meinen C++ Kenntnissen durch...

Gruß Jo


Anzeige
Re: makro anpassen
14.04.2003 14:21:27
Nike

Hi,
es gibt auch noch ne Single Open Lösung ;-)
Aber hier mal die Quick & Dirty Lösung:
es wird alles nach A1 kopiert...

Bye

Nike


Re: makro anpassen
14.04.2003 14:38:19
Joachim

*frechguck*

Womöglich bin ich ja echt zu blöd für, aber ich kann damit nur immer eine einzelnen Zelle kopieren und nicht eine ganze Spalte in eine andere Spalte....
Kannst DU mir da bitte nochmal weiterhelfen? Sofern ich ned zuviel Deiner Zeit in Anspruch nehmen...

Danke

Gruß Joachim

Re: makro anpassen
14.04.2003 14:42:42
Nike

Hi,
wenn der Spaltenwahldialog kommt einfach mal die Spaltenköpfe
wählen, das wählt dann automatisch die ganze Spalte.
Also bei mir hat`s dann auch alles übertragen...
Angefangen bei A1

Bye

Nike

Anzeige
Re: makro anpassen
14.04.2003 16:56:35
Joachim

Hmmmm,

was genau verstehst Du unter einem Spaltenkopf? Denn wenn ich A1 eingebe, dann wird nur die eine Zelle übertragen, nicht aber die ganze Spalte!!!

BYE Jo

Re: makro anpassen
14.04.2003 17:00:46
Joachim

*schäm*

ok, Spaltenkopf ist beispielsweise A:A ...
Aber dann stellt sich die Frage, was ich eingeben muss, damit ich zwei Spalten übernehmen kann :-(


Gruß JO

Re: makro anpassen
15.04.2003 13:04:24
Nike

Hi,

Im Wahldialog klick auf A und halte geklickt,
zieh bis B rüber, jetzt sind A und B gewählt A:B

Bye

Nike

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige