Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Mehrere Zellen in neuer Datei&/Tabellenblatt ausgeben

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Mehrere Zellen in neuer Datei&/Tabellenblatt ausgeben (1210 mal gelesen)
Phildi
Mitglied
Student

Sehen Sie sich das Profil von Phildi an!   Senden Sie eine Private Message an Phildi  Schreiben Sie einen Gästebucheintrag für Phildi

Beiträge: 4
Registriert: 25.07.2012

erstellt am: 25. Jul. 2012 14:23    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo an alle Experten,

ich bin Student und versuche gerade für ein Projekt eine Datenbank zu erstellen. Dabei möchte ich eine Analyse programmieren. Ich möchte, dass Datensätze(jeder 9 Spalten lang) in eine neue Exceldatei kopiert werden. Dazu habe ich mal folgendes Makro erstellt:

Public Sub Zeilen2()
Dim i As Integer
Dim cell As Range
i = 1
For Each cell In Tabelle1.Range("H:H")
If Not cell Is Nothing Then
    If cell.Value = "Hoch" Then
        cell.EntireRow.Copy Destination:=Tabelle2.Rows(i)
        i = i + 1
    End If
End If
Next cell
End Sub

Jetzt habe ich zwei Probleme.
1. Was muss ich bei der Definition der Destination beachten? Ich bekomme es nicht gebacken, dass ich die Datensätze in eine andere Datei bekomme 
2. Das Makro funktioniert (wie oben geschrieben) fast einwandfrei auf ein neues Tabellenblatt in der selben Datei. Allerdings habe ich im Asugabeblatt die ersten drei Zeilen für Überschriften geblockt und fixiert. Die Datensätze werden jedoch jedesmal über den Unterschriften ausgegeben und nicht darunter. Freue mich wenn mir jemand dazu einen Tipp geben kann.

Danke schon mal für die Beiträge
Grüße
Phildi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 25. Jul. 2012 16:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Phildi 10 Unities + Antwort hilfreich

Hallo und Willkommen auf CAD.de   ,

zu 1): Guck' mal, ob Du anstelle von

Code:
cell.EntireRow.Copy Destination:=Tabelle2.Rows(i)
mit
Code:
cell.EntireRow.Copy Paste...#NeueMappeNeuesRegister
und ggf. der Hilfe weiterkommst?
zu 2) Naja, Dein i ist eins, also geht es auch beim Einfügen in der ersten Zeile los, egal, was da drin steht. Eine Möglichkeit wäre, für das Einfügen den Zähler um die Anzahl der belegten Zeilen im Zielregister zu erhöhen, also ...Tabelle2.Rows(i+3)

Allerdings bin ich mir unsicher, ob dann nicht am Ende aller Zeilen ein Fehler geworfen wird...

[Tante Edit: "+3" im "i" ergänzt - Danke, Beverly! /Edit]

------------------
DIN1055.de  |  Lastannahmen für Anwender

[Diese Nachricht wurde von Paulchen am 26. Jul. 2012 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 26. Jul. 2012 09:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Phildi 10 Unities + Antwort hilfreich

Hi Phil,

versuche es mal so (ungetestet):

Code:
cell.EntireRow.Copy Destination:=Workbooks("Zielmappe").Tabelle2.Rows(i + 3)

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Phildi
Mitglied
Student

Sehen Sie sich das Profil von Phildi an!   Senden Sie eine Private Message an Phildi  Schreiben Sie einen Gästebucheintrag für Phildi

Beiträge: 4
Registriert: 25.07.2012

erstellt am: 26. Jul. 2012 12:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke euch beiden für die Tipps... Ich beschäftige mich erst seit ein paar Tagen mit Visual Basic und lerne jetzt zwar immer mehr ... aber es dauert auch seine Zeit 

Ich habe eure Hinweise mal eingearbeitet ... Habe jetzt aber nen Laufzeitfehler9...

Allerdings ist doch mein Index i.o. !

Hab hier nochmal den Code:

Code:
Public Sub Zeilen2()
Dim i As Integer
Dim cell As Range
i = 1
For Each cell In Tabelle1.Range("H:H")
If Not cell Is Nothing Then
    If cell.Value = "Hoch" Then
        cell.EntireRow.Copy Destination:=Workbooks("Themen_Priorität HOCH.xlsx").Tabelle2.Rows(1)
        i = i + 1
    End If
End If
Next cell
End Sub

Kann es vielleicht auch sein, dass ich Daten aus einem xls.-Datei nicht in eine xlsx-Datei übertragen kann??? Ich arbeite nämlich mit den unterschiedlichen Formaten.

LG
Phildi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 26. Jul. 2012 13:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Phildi 10 Unities + Antwort hilfreich

Hi,

zwei Sachen:
1) Tabelle2.Rows(1) - da steht 'ne 1, kein "i"?
2) Ab Office 2007 müssen Mappen mit Makros auf ".xlsm" enden. Keine Ahnung, ob das beim Zugriff "von außen" auch eine Rolle spielt, Dein Verdacht könnte richtig sein --> Google?

(Sonderzeichen - wie z. B. "ä" im Dateinamen - vermeide ich persönlich.)

------------------
DIN1055.de  |  Lastannahmen für Anwender

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Phildi
Mitglied
Student

Sehen Sie sich das Profil von Phildi an!   Senden Sie eine Private Message an Phildi  Schreiben Sie einen Gästebucheintrag für Phildi

Beiträge: 4
Registriert: 25.07.2012

erstellt am: 26. Jul. 2012 16:03    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Danke für die Hinweise Paul ... ich habe jetzt einfach nochmal von Vorne angefangen und habe festgestellt, dass die Laufzeitfehler(jetzt 438) dann auftauchen wenn ich bei als Ausgabeziel folgendes angebe:
Code:
cell.EntireRow.Copy Destination:=Workbooks("Themen_Prioritaet_HOCH.xlsm").Tabelle2.Rows(i + 4)

Lasse ich als Ziel ein einfaches Tabellenblatt in der gleichen Datei funktioniert das Ding einwandfrei.

Ich habe jetzt nochmal ne google-Recherche gemacht aber komme zu keiner Lösung.
P.S. Die Dateitypen habe ich inzwischen auf gleiches Format angepasst.

Fällt euch noch was ein?!?
Grüße
Phildi

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 26. Jul. 2012 16:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Phildi 10 Unities + Antwort hilfreich

Hi Phil,

meines Wissens kann man nicht so ohne Weiteres auf den Codenamen aus einer anderen Arbeitsmappe referenzieren - das geht nur über einen Umweg. Versuche es mal so:

Code:
Public Sub Zeilen2()
   Dim i As Integer
   Dim rngZelle As Range
   Dim wksTab As Worksheet
   i = 1
   With Workbooks("Themen_Priorität HOCH.xlsx")
      For Each wksTab In .Worksheets
         If wksTab.CodeName = "Tabelle2" Then Exit For
      Next wksTab
   End With
   For Each rngZelle In Tabelle1.Columns("H:H").SpecialCells(xlCellTypeConstants)
       If rngZelle = "Hoch" Then
           rngZelle.EntireRow.Copy Destination:=wksTab.Rows(i + 3)
           i = i + 1
       End If
   Next rngZelle
End Sub

Es spielt keine Rolle, welche Dateiendung de Zielarbeitsmappe hat.

------------------
Bis später,
Karin

[Diese Nachricht wurde von Beverly am 26. Jul. 2012 editiert.]

[Diese Nachricht wurde von Beverly am 26. Jul. 2012 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Phildi
Mitglied
Student

Sehen Sie sich das Profil von Phildi an!   Senden Sie eine Private Message an Phildi  Schreiben Sie einen Gästebucheintrag für Phildi

Beiträge: 4
Registriert: 25.07.2012

erstellt am: 27. Jul. 2012 09:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hey Karin,

danke für die Info ... hatt ein bisschen gedauert bis ich durch deinen Code durchgestiegen bin ;-) die Mühen eines Anfängers eben. Hab ihn aber auch mal ausprobiert und es kommen auch keine Fehlermeldungen mehr aber ansonsten passiert nichts. Beide Files geöffnet, Makros aktiviert, Code im Tabellenblatt mit den Ausgangsdaten hinterlegt, ...

Was mach ich nur falsch     

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Beverly
Mitglied
Dipl.-Geologe (Rentner)


Sehen Sie sich das Profil von Beverly an!   Senden Sie eine Private Message an Berverly  Schreiben Sie einen Gästebucheintrag für Berverly

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 27. Jul. 2012 15:14    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Phildi 10 Unities + Antwort hilfreich

Hi Phil,

weshalb den Code im Tabellenblatt? Von allein passiert da doch nichts, irgendwie muss der Code ja angestoßen werden - z.B. durch das Worksheet_Change-Ereignis des Tabellenblattes. So wie der der Code jetzt ist, müsste er in einem allgemeinen Modul stehen und über die Makroauswahl gestartet werden.

------------------
Bis später,
Karin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz