Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
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

Hallo Tino

Hallo Tino
29.12.2013 13:10:23
Albert
Hallo Tino,
den nachstehenden VBA-Code hast Du mir vor Monaten zur Verfügung gestellt:
Sub Werte_importieren2()
'Start des Makros erfolgt aus der Zieltabelle
'Tabelle1.Range("J5").Value = 1
Dim Pfad_lokal As String
Dim wbZiel As Workbook, wsZiel As Worksheet
Dim wbQuelle As Workbook, wsQuelle As Worksheet, rngQuelle As Range
Dim nRQ&, nRZ&
Set wsZiel = Tabelle1
Pfad_lokal = wsZiel.Range("J10").Value
'prüfen ob Datei vorhanden
If Dir(Pfad_lokal, vbNormal) = "" Then
MsgBox "Datei" & vbCr & Pfad_lokal & vbCr & "nicht gefunden", vbExclamation
Exit Sub
End If
Set wbQuelle = Workbooks.Open(Pfad_lokal)
On Error Resume Next
Set wsQuelle = wbQuelle.Worksheets("Journal")
'prüfen ob Tabelle vorhandne
If wsQuelle Is Nothing Then
MsgBox "Tabelle 'Journal' in der Datei " & vbCr & Pfad_lokal & vbCr & "nicht gefunden",  _
vbExclamation
Exit Sub
End If
On Error GoTo 0
'Fehlerbehandlung
On Error GoTo ErrorHandler:
With Application
.ScreenUpdating = False
.EnableEvents = False
If Not wsQuelle Is Nothing Then
With wsQuelle
nRZ = 4 'Voreinstellung
For nRQ = 12 To 28 Step 8
nRZ = nRZ + 8 'von letzter +8 Zeilen
For Each rngQuelle In Union(.Cells(nRQ, 3), .Cells(nRQ, 9), .Cells(nRQ, 10)). _
Areas
'nur Werte
With wsZiel.Cells(nRZ, rngQuelle.Column).Resize(, rngQuelle.Columns.Count)
.Value = rngQuelle.Value
.Copy
.PasteSpecial Paste:=xlPasteFormats
End With
Next rngQuelle
Next nRQ
End With
End If
ErrorHandler:
On Error Resume Next
wbQuelle.Close SaveChanges:=False
ThisWorkbook.Activate
Application.Goto Tabelle1.Cells(15, 3)
.ScreenUpdating = True
.EnableEvents = True
End With
If Err.Number  0 Then
MsgBox Err.Description, _
vbCritical + vbMsgBoxSetForeground + vbMsgBoxHelpButton, _
"Error: " & Err.Number, Err.HelpFile, Err.HelpContext
End If
End Sub

Ich habe den Code teilweise für die geänderten Erfordernisse angepasst und habe nun zwei Fragen, die ich mit meinen bescheidenen VBA-Kenntnissen nicht lösen konnte.
1) Wie ist der Code abzuändern, damit aus Spalte J ( .Cells(nRQ, 10)) auch die Formeln (und nicht nur Werte) kopiert werden.
Falls diese Variante zu kompliziert wird, wäre für meine Zwecke auch (copy and paste) des Bereichs A:J (jede achte Zeile....) zielführend.
2) Ich muss auch Werte aus einer zweiten Tabelle (von derselben Quellarbeitsmappe) importieren und habe nun Deinen Code angepasst und definiere die Quellarbeitsmappe wieder mit:
Set wbQuelle = Workbooks.Open(Pfad_lokal) - Import funktioniert, ich möchte nur die Warnmeldung vermeiden, dass Quelldatei bereits geöffnet ist.
Application.DisplayAlerts = False führt nicht zum gewünschten Ergebnis. Gibt es eine andere Möglichkeit die (bereits geöffnete) Quellarbeitsmappe zu definieren und somit diese Warnmeldung zu vermeiden?
Ich bedanke mich nochmals für Deine tolle Unterstützung und hoffe, dass ich mit meinen neuerlichen Fragen nicht lästig erscheine.
LG Albert

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hallo Tino u./oder Andere Helfer ?
31.12.2013 08:41:41
Matze
Hallo Albert,
ich bin kein Profi was VBA anbelangt, aber mal sehn was ich hier machen kann:
(Was mich immer wundert ist das kein Anderer sich der Aufgabe annimmt.)
Ab dieser Stelle im Code arbeitest du mit mehreren Spalten/Bereichen "Union"
                For Each rngQuelle In Union(.Cells(nRQ, 3), .Cells(nRQ, 9), .Cells(nRQ, 10)). _
Areas
'nur Werte
With wsZiel.Cells(nRZ, rngQuelle.Column).Resize(, rngQuelle.Columns.Count)
.Value = rngQuelle.Value
.Copy
.PasteSpecial Paste:=xlPasteFormats
End With
Next rngQuelle

und an der Stelle FETT markiert wird die Art definiert wie die Werte eingefügt werden.
alle 3 Bereiche würden dann mit .PasteSpecial Paste:=xlPasteFormulas gleich behandelt
Zur 2ten Frage hab ich keinen Rat,lasse offen für die Profis
Gruß Matze

Anzeige
AW: Hallo Tino u./oder Andere Helfer ?
31.12.2013 13:10:33
Hajo_Zi
Hallo Matze,
es wurde eine bestimmte Person mit dem Beitrag angesprochen, warum sollen da andere Antworten.

AW: Hallo Tino u./oder Andere Helfer ?
31.12.2013 19:08:37
Matze
Hallo Hajo,
ich wills einfach nicht verstehen. Du antwortest doch, liest womöglich den Beitrag noch und helfen möchtest du nicht? Du bist vermutlich wie immer dann "raus"?
Dies soll doch ein helfendes Forum sein, so hab ich es jedenfalls mal kennen gelernt, nun Jedem das seine oder ist dem so das wenn wer "direkt" mit einer Frage im Betreff gerufen wird, man auf ihn warten muss bis er aus dem Skiurlaub zurück ist?
Hajo, lass es doch bei deiner Meinung die hilft Thorsten kein Stück weiter und mir geht die auf den Zeiger. Nix gegen deine Kompetenz auch nix gegen dich persönlich, was mich halt stört ist :
"warum sollen da andere Antworten" - lediglich um zu helfen! Sei mir nicht böse, aber das musste ich halt mal los werden,..ich hab halt eine andere Meinung,..
Dir und auch ALLEN Anderen Helfern ein frohes u. gesundes Jahr 2014
Gruß Matthias (Matze)

Anzeige
AW: Hallo Tino u./oder Andere Helfer ?
31.12.2013 19:18:29
Hajo_Zi
Hallo Mattias,
es wird schon seine Grund gehabt haben warum er nur von einer Person eine Antwort haben will.
Mir ist das Egal und ich Frage nicht warum.
Gruß Hajo

Danke an Matze Matthias
02.01.2014 15:09:21
Albert
Hallo Matthias,
bin erst seit kurzem wieder im Netz, danke für Deine Rückmeldung. Vorschlag kann ich erst heute Abend testen. Ich glaube, dass ich es selbst schon mit "PasteSpecial Paste:=xlPasteFormulas" versucht hatte, jedoch ohne den gewünschten Erfolg, oder vielleicht täusche ich mich auch.
Ich werde es auf jeden Fall heute Abend ausprobieren und Bescheid geben.
Danke Albert

Anzeige
Danke Nr. 2 an Matthias
02.01.2014 20:09:38
Albert
Hallo Matthias,
ich hatte leider recht, Deinen Vorschlag hatte ich bereits versucht und gerade nochmals getestet - bringt leider nicht den gewünschten Erfolg.
Trotzdem Danke und schönen Abend
Albert

AW: Danke Nr. 2 an Matthias
02.01.2014 23:14:40
Matze
Hallo Albert,
nun da du ja nichts geändert hast an
.PasteSpecial Paste:=xlPasteFormats 'nur Formate übertragen
dann ändere das mal so ab:
.PasteSpecial Paste:=xlPasteAll 'alles Übertragen
Hier noch die Hilfe aus VBA-Editor wenn du auf .PasteSpecial den Curser markierst und dann F1 drückst:
List der Past Eigenschaften
Name Wert Beschreibung
xlPasteAll -4104 Alles wird eingefügt.
xlPasteAllExceptBorders 7 Alles außer den Rahmen wird eingefügt.
xlPasteAllMergingConditionalFormats 14 Alles wird eingefügt, und die bedingten Formate werden zusammengeführt.
xlPasteAllUsingSourceTheme 13 Alles wird unter Verwendung des Quelldesigns eingefügt.
xlPasteColumnWidths 8 Die kopierte Spaltenbreite wird eingefügt.
xlPasteComments -4144 Kommentare werden eingefügt.
xlPasteFormats -4122 Das kopierte Quellformat wird eingefügt.
xlPasteFormulas -4123 Formeln werden eingefügt.
xlPasteFormulasAndNumberFormats 11 Formeln und Zahlenformate werden eingefügt.
xlPasteValidation 6 Überprüfungen werden eingefügt.
xlPasteValues -4163 Werte werden eingefügt.
xlPasteValuesAndNumberFormats 12 Werte und Zahlenformate werden eingefügt.
hoffe ich konnte zum Punkt1 jetzt helfen
Gruß Matze
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige