PDA

Vollständige Version anzeigen : Text in Spalte suchen und dann aus andere Zelle Text kopieren


cmamojka
25.06.2015, 21:47
Hallo Zusammen,

ich bekomme es nicht gebacken. Folgende Aufgabenstellung:

Ich habe eine Excel-Tabelle gefüllt mit Daten. In Spalte A befindet sich ein Datum im Format "yyyymmdd" ohne Punkt,ohne Komma. In Spalte M ein zugehöriger Wert.

In Spalte A sollen alle Einträge die aus einem November sind herausgesucht werden und das jeweilige Jahr in ein zweites Tabellenblatt kopiert werden. Zusätzlich sollen die entsprechenden Daten aus Spalte M in das zweite Tabellenblatt kopiert werden neben der jeweiligen Jahreszahl.

Die Datenaus Spalte M den Text "ungülig" enthalten sollen diese Daten niht kopiert werden.


Leider bekomme ich es einfach nicht hin und meine stundenlangen Suchen im Netz führen mich ständig auf einen neuen Pfad. Ich komme nicht weiter.


Ich Danke euch schonmal vorab!!!

VG

aloys78
26.06.2015, 09:15
Hallo,

stell doch mal eine Beispiel-Datei zur Verfügung.

Gruß
Aloys

chris-kaiser
26.06.2015, 09:17
Hi,

wie wäre es mit einer Beispielmappe!?

^^ Ok hätte noch mal aktualisieren sollen....

cmamojka
27.06.2015, 11:42
Moin,

hier die Beispiel-Datei…


Konkret soll aus Spalte "B" der November jeden Jahres heraus gesucht werden und mit der zugehörigen Spalte "F" in eine neues Arbeitsblatt kopiert werden.

Ergebnis soll dann sein:

Spalte A = Jahr
Spalte B = Temperatur

Hab mir die Zähne ausgebissen. :(

Vielen Dank schon mal!!!

GMG-CC
27.06.2015, 12:38
Moin,

lege dir 2 Hilfsspalten an, wie in der Anlage. Dann filterst du Spalte_R so, dass leere Zellen nicht angezeigt werden. Spalte_R:S dann kopieren und in das Zielblatt einfügen.

Hab mir die Zähne ausgebissen.
Auch bei euch gibt es gewiss gute Zahnärzte :cool:

EDIT: In Spalte_M gibt es keine Wert "ungültig", sonst auch den filtern.

cmamojka
29.06.2015, 18:34
Moin,

vielen lieben Dank erstmal für die Mühe!
So weit, so gut, aber ich bräuchte das Ganze als VBA-Script den ich durch das Klicken auf einen Button auslösen kann. :entsetzt:

Kannst Du mir dahingehend evtl. auch helfen?


Danke! Danke! Danke!

GMG-CC
29.06.2015, 19:12
Moin,

natürlich kann ich das, davon lebe ich schließlich. Aber ich will es nicht! Ich habe nämlich keine Lust, ein Problem noch einmal von vorne aufzurollen, nur weil ein TE "vergessen" hat, das Wichtigste mit anzugeben. Das "riecht" ein wenig nach Salamitaktik, und die mag ich gar nicht. Selbstredend hätte ich bei entsprechendem Eingangsthread auch den Code erstellt. Wenn du möchtest, kannst du hier (http://www.excel-ist-sexy.de/forenhilfe/nachschlag-bitte/) mehr dazu lesen.

Ansonsten frage ich mich: Was bist du denn bereit, dabei selbst zu leisten? Hilfe zur Selbsthilfe ist das Fundament der Foren, aber bitte keine kompletten Lösungen (von Ausnahmen mal abgesehen).

chris-kaiser
30.06.2015, 06:36
Hi,

hier mal ein Versuch..


@Günther
stand nicht in der ersten Frage VBA dabei?

cmamojka
30.06.2015, 08:23
Moin,

natürlich kann ich das, davon lebe ich schließlich. Aber ich will es nicht! Ich habe nämlich keine Lust, ein Problem noch einmal von vorne aufzurollen, nur weil ein TE "vergessen" hat, das Wichtigste mit anzugeben. Das "riecht" ein wenig nach Salamitaktik, und die mag ich gar nicht. Selbstredend hätte ich bei entsprechendem Eingangsthread auch den Code erstellt. Wenn du möchtest, kannst du hier (http://www.excel-ist-sexy.de/forenhilfe/nachschlag-bitte/) mehr dazu lesen.

Ansonsten frage ich mich: Was bist du denn bereit, dabei selbst zu leisten? Hilfe zur Selbsthilfe ist das Fundament der Foren, aber bitte keine kompletten Lösungen (von Ausnahmen mal abgesehen).
@Günther
Zum einen stand in der ersten Frage "VBA", am besten wäre es, wenn Du einfach richtig liest und zum anderen war es Gestern Abend sicher etwas spät und Deine schlechte Laune musste wohl raus.
Wenn Du nichts beizutragen hast, dann halt dich doch einfach zurück. Niemand braucht diese überflüßigen Threats.

Dennoch Danke für Deinen ersten Ansatz. Habe es aufgezeichnet und anhand der Aufzwichungen etwas modifiziert hinbekommen.

cmamojka
30.06.2015, 08:25
Hi,

hier mal ein Versuch..


@Günther
stand nicht in der ersten Frage VBA dabei?
Hi Chris,

vielen Dank für Deine Lösung! Jetzt überlege ich glatt diese zu nehmen. Sieht deutlich besser aus :)
Danke Danke!!!!

LG

cmamojka
30.06.2015, 08:27
Hier mein Ergebnis:

Private Sub CommandButton3_Click()
Dim letzte As Long
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Range("C1").Select
ActiveCell.FormulaR1C1 = "Jahr"
Columns(3).NumberFormat = "General"
Range("C2:C2000").FormulaLocal = "=TEIL(B2;1;4)"
ActiveSheet.Range("$A$1:$R$2000").AutoFilter Field:=8, Criteria1:="<>-999", Operator:=xlFilterValues
Range("C:C,H:H").Select
Selection.Copy
Workbooks("Wetterdaten.xlsm").Worksheets.Add.Name = "Auswertung"
ActiveSheet.Paste
Sheets("Auswertung").Move After:=Sheets(2)
Sheets("Wetterdaten").Select
ActiveSheet.Range("$A$1:$R$2000").AutoFilter Field:=8
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft


End Sub


Ich empfehle allerdings eher die Variante von Chris. Für mich auf jeden Fall GELÖST!

Danke an ALLE!

chris-kaiser
30.06.2015, 08:53
Hi,

werden Charts davon benötigt?
Wenn ja, dann würde ich Pivot empfehlen.

Alle -999 durch #NV ersetzen, . durch ,
zwei Hilfsspalten mit Jahr und Monat und daraus Pivot erzeugt.

siehe
<a href="http://www.herber.de/bbs/user/98560.xlsx">Demodatei</a>

cmamojka
30.06.2015, 09:05
Hi, vielen Dank nochmal! Alles Prima so... Hier nochmal meine Ergänzung zur genauen Aufgabenstellung:

Private Sub CommandButton3_Click()
Dim letzte As Long
Columns("C:C").Select
Selection.Insert Shift:=xlToRight
Range("C1").Select
ActiveCell.FormulaR1C1 = "Jahr"
Columns(3).NumberFormat = "General"
Range("C2:C2000").FormulaLocal = "=WENN(TEIL(B22;5;2)=""09"";LINKS(B22;4);"""")"
ActiveSheet.Range("$A$1:$R$2000").AutoFilter Field:=8, Criteria1:="<>-999", Operator:=xlFilterValues
ActiveSheet.Range("$A$1:$Q$2000").AutoFilter Field:=3, Criteria1:="<>"
Range("C:C,H:H").Select
Selection.Copy
Workbooks("Wetterdaten.xlsm").Worksheets.Add.Name = "Auswertung"
ActiveSheet.Paste
Sheets("Auswertung").Move After:=Sheets(2)
Sheets("Wetterdaten").Select
ActiveSheet.Range("$A$1:$R$2000").AutoFilter Field:=8
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
End Sub

chris-kaiser
30.06.2015, 09:29
Hi,

diese Werte können nicht stimmen :), hast du diese schon einmal kontrolliert.
Range("C2:C2000").FormulaLocal = "=WENN(TEIL(B22;5;2)=""09"";LINKS(B22;4);"""")"

Werden also keine Charts benötigt?

hier mal eine < 3 Minuten Anleitung mit Pivot
https://www.youtube.com/watch?v=WnFiwGhjdYw