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

Suchen/ersetzen Makro

Suchen/ersetzen Makro
17.05.2017 10:33:11
Jens
Guten Morgen zusammen,
ich soll kurzfristig für meinen Chef eine sich selbstaktualisierende Excel Tabelle basteln, die sich ihre Daten selbstständig aus Excel SAP-Export Tabellen zieht und für eine Pivot-Tabelle vorbereitet.
Soweit habe ich, ohne jegliche VBA-Erfahrung, den Großteil umsetzen können. Nur an 2 Problemen bin ich leider gescheitert. Große Problem war die schiere Masse der durchzuarbeitende Daten (Blatt 1 ca. 15.000 Zeilen, Spalten A bis O ;variiert), Blatt 2 (ca. 2.500 Zeilen, Spalte A bis D; variiert).
Habe schon stundenlang Google bemüht, habe aber leider nichts wirklich passendes finden können. Ich hoffe hier kann man mir weiterhelfen. Und wenn wer ein gutes Buch/Seite kennt um das Programmieren in VBA zu lernen wäre ich auch dankbar. ^^
Dann danke ich schonmal für eure Hilfe und hier die beiden Probleme:
Problem 1:
Wenn eine Zelle aus einer bestimmter Spalte (N) auf Blatt 1 leer,
dann Eintrag "leer" in gleicher Zeile ,aber Spalte B vornehmen,
Wenn nicht leer (irgendein Inhalt vorhanden),
dann anderen Eintrag in gleicher Zeile "voll" vornehmen (gleiche Zelle wie bei voll)
Anzahl der Gesamtzeilen variiert hier.
Problem 2:
Inhalt in einer bestimmten spalte in Blatt 2 abgleichen, ob gleicher Eintrag auf Blatt in einer bestimmten spalte vorhanden,
wenn ja 2 Zellen aus der gleichen Zeile auf Blatt 2 in die gleiche Zeile auf Blatt 1 eins übernehmen, wo der Eintrag gefunden wurde,
wenn nein zur nächsten Zeile in Blatt 2 springen.
Wiederholen bis alle Einträge auf Blatt 2 abgearbeitet sind
(Anzahl der Einträge variiert auch hier)

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

Betreff
Datum
Anwender
Anzeige
AW: Suchen/ersetzen Makro
17.05.2017 11:44:17
UweD
Hallo
in so einem Fall ist es immer besser, eine Musterdatei hochzuladen (anonymisiert)
so musst du ggf. viele Anpassungen vornehmen
zu Prob 1)
Sub LeerVoll()
    Dim RNG As Range
    Dim EZ As Integer, SP As Integer, LR As Double
    EZ = 2 ' erste Zeile, wegen Überschrift? 
    SP = 14 'Spalte N 
    
    With Sheets("Blatt1")
        LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte 
        Set RNG = .Range(.Cells(EZ, SP), .Cells(LR, SP))
        If WorksheetFunction.CountBlank(RNG) > 0 Then
            RNG.SpecialCells(xlCellTypeBlanks).Offset(0, -12).Value = "leer"
        End If
        If WorksheetFunction.CountA(RNG) > 0 Then
            RNG.SpecialCells(xlCellTypeConstants, 3).Offset(0, -12).Value = "voll"
        End If
    End With

End Sub
zu Prob 2)
hier bitte Datei...
LG UweD
Anzeige
AW: CP mit "Clever-xl", Helix owT
17.05.2017 12:07:27
Fennek
AW: CP mit "Clever-xl", Helix owT
18.05.2017 16:15:53
Jens
Danke schonmal! klappt beim 1. Problem perfekt! :)
Hier der Link zum 2.ten Problem: Habe die Zeilen die übereinander gehören farblich markiert.
https://www.herber.de/bbs/user/113678.xlsx
AW: CP mit "Clever-xl", Helix owT
18.05.2017 23:36:20
UweD
Hallo
das geht ohne VBA.

Datenbasis
 ABCDE
1MaterialstatusEinrichtungKostenstelleBezeichnungBelegDat  
2DurchläuferStadt 1abc000Kostenstelle 108.12.16
3DurchläuferStadt 2abc001Kostenstelle 201.03.17
4DurchläuferStadt 3abc002Kostenstelle 301.03.17

verwendete Formeln
Zelle Formel Bereich N/A
B2:B4=WENNFEHLER(INDEX(Kostenstellen!$C:$C;VERGLEICH($C2;Kostenstellen!$A:$A;0));"")  
D2: D4=WENNFEHLER(INDEX(Kostenstellen!$B:$B;VERGLEICH($C2;Kostenstellen!$A:$A;0));"")  
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.10 einschl. 64 Bit


LG UweD
Anzeige
AW: CP mit "Clever-xl", Helix owT
19.05.2017 07:08:02
Jens
ach, gar nicht dran gedacht, dass es auch ohne geht :D
Klappt peferkt :D
Wie kriege ich es hin, dass der mir die beiden Befehle in Spalte B und D schreibt, solange etwas in Spalte C steht?
AW: CP mit "Clever-xl", Helix owT
19.05.2017 07:59:35
Jens
Habs jetzt so gelöst, danke Nochmal! :)
Range("B2").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(INDEX(Kostenstellen!C3,MATCH(Datenbasis!RC3,Kostenstellen!C1,0)),"""")"
Range("D2").Select
ActiveCell.FormulaR1C1 = _
"=IFERROR(INDEX(Kostenstellen!C2,MATCH(Datenbasis!RC[-1],Kostenstellen!C1,0)),"""")"
Dim lngLetzte As Long 'letzte Zeile
With Sheets("Datenbasis")
'letzte Zeile auffinden:
lngLetzte = .UsedRange.Rows.Count + .UsedRange.Row - 1
'Formel aus L1 runterkopieren:
.Range(.Cells(2, 2), Cells(lngLetzte, 2)).Formula = .Cells(2, 2).Formula
'Alternativ Formel aus L2 runterkopieren (Falls Überschriften in 1. Zeile):
'.Range(.Cells(2, 12), Cells(lngLetzte, 12)).Formula = .Cells(2, 12).Formula
End With
Dim lngLetzte2 As Long 'letzte Zeile
With Sheets("Datenbasis")
'letzte Zeile auffinden:
lngLetzte2 = .UsedRange.Rows.Count + .UsedRange.Row - 1
'Formel aus L1 runterkopieren:
.Range(.Cells(2, 4), Cells(lngLetzte, 4)).Formula = .Cells(2, 4).Formula
'Alternativ Formel aus L2 runterkopieren (Falls Überschriften in 1. Zeile):
'.Range(.Cells(2, 12), Cells(lngLetzte, 12)).Formula = .Cells(2, 12).Formula
End With
Anzeige
AW: CP mit "Clever-xl", Helix owT
19.05.2017 14:45:29
UweD
Hallo
auf select kann in 99% verzichtet werden.
du kannst die Formel direkt dem ganzen Bereich zuweisen..
Ausserdem fehlte noch ein Punkt vor dem 2. cells
    Dim lngLetzte As Long 'letzte Zeile 
    Dim RNG As Range
    
    With Sheets("Datenbasis")
   
        lngLetzte = .UsedRange.Rows.Count + .UsedRange.Row - 1
        Set RNG = .Range(.Cells(2, 2), .Cells(lngLetzte, 2))
        RNG.FormulaR1C1 = _
            "=IFERROR(INDEX(Kostenstellen!C3,MATCH(Datenbasis!RC3,Kostenstellen!C1,0)),"""")"
        RNG.Value = RNG.Value 'macht aus Formeln Werte 
    
    '... 

LG UweD
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige