online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon LianaW vom 13.10.2022, 11:28 Options

Werte in Excel importieren und Zeilen ausblenden

Hallo liebes Forum,

ich habe Folgendes vor: in eine Excel-Datei (Tabelle "Import") Werte aus einer .xml Datei importieren. Dafür habe ich folgendes Makro, leider nicht selbst geschrieben, im Forum gefunden (an dieser Stelle vielen Dank an den Autor!):
Option Explicit
    Dim Stamm As String
    Dim varFile As Variant
    Dim varName As Variant
    Dim Blatt As String
    Dim LastValue As Variant
    Dim Target As Range
        

Public Sub Dateien()
On Error GoTo Err
    Stamm = ActiveWorkbook.Name
    varFile = Application.GetOpenFilename("Excel Files (*.xml), *.xml", , "XML", "Auswahl", False)
    If TypeName(varFile) Like "Boolean" Then
        MsgBox "Keine Datei gewahlt!", vbInformation
        Exit Sub
    Else

      varName = Right$(varFile, Len(varFile) - InStrRev(varFile, "\"))
     Workbooks.Open varFile
     Workbooks(varName).Sheets("Import").Range("A1:S50").Copy
     Workbooks(Stamm).Sheets("Import").Range("A1:S50").PasteSpecial xlPasteValues
     Workbooks(varName).Close
     Application.CutCopyMode = False
      
        End If
  Exit Sub
Err:
  Call MsgBox("Bitte uberpruffen ob die Tabelle" _
              & vbCrLf & "Import vohanden ist 1" _
              , vbExclamation, "Fehler")
      
End Sub


In Tabelle 2 "Layout" möchte ich als Ausgangssituation die Zeilen 67:355 ausgeblendet haben.
In Abhängigkeit von den importierten Werten ( Tabelle "Import", Spalte G, ab Zeile 17, Anzahl der befüllten Zeilen variierend) sollen bestimmte Zeilen wieder eingeblendet werden.
Beispiel:
wenn G17 ("Import") = leer, dann Zeilen 67:355 in ("Layout") ausgeblendet;
wenn G17 ("Import") = "gelb" dann Zeilen 72:75 in ("Layout") eingeblendet;
wenn G17 ("Import") = "blau" dann Zeilen 107:110 in ("Layout") eingeblendet;
wenn G17 ("Import") = "orange" dann Zeilen 177:180 in ("Layout") eingeblendet;
wenn G17 ("Import") = "grau" dann Zeilen 267:270 in ("Layout") eingeblendet;
Es gibt nur diese 5 Möglichkeiten die in einer Auswahlliste in der Ursprungsdatei zur Verfügung stehen.
Es soll geprüft werden ob in den Folgezellen, also G18, G19, G20 etc. Werte stehen, bis zur nächsten leeren Zelle. Wenn Werte vorhanden dann soll wie im Beispiel oben vorgegangen werden nur jeweils die nächsten 5 Zeilen, Bsp:
wenn G18 ("Import") = "gelb" dann Zeilen 76:80 in ("Layout") eingeblendet;

Dafür habe ich folgendes Makro gefunden/angepasst (hat auch vor dem "Importieren-Makro" zumindest für die Zelle G17 funktioniert, jetzt nicht mehr). Weiß auch nicht wie ich es auf andere Zellen anwenden kann :-(
Im unteren Bsp werden immer 2 Bereiche ein/ausgeblendet, da sind noch die Überschriften, aber das kann ich dann hoffentlich selbst anpassen...

Public Sub Worksheet_Change(ByVal Target As Range)
Application.ScreenUpdating = False
If Target.Address(0, 0) <> "G17" Then Exit Sub

Select Case Target
     Case ""
        Worksheets("Layout").Range("A67:A355").EntireRow.Hidden = True
End Select

Select Case Target
      Case "gelb"
        Worksheets("Layout").Range("A68:A70").EntireRow.Hidden = False
        Worksheets("Layout").Range("A71:A75").EntireRow.Hidden = False
      Case Else
        Worksheets("Layout").Range("A68:A70").EntireRow.Hidden = True
        Worksheets("Layout").Range("A71:A75").EntireRow.Hidden = True
End Select

Select Case Target
      Case "blau"
        Worksheets("Layout").Range("A103:A105").EntireRow.Hidden = False
        Worksheets("Layout").Range("A106:A110").EntireRow.Hidden = False
      Case Else
        Worksheets("Layout").Range("A103:A105").EntireRow.Hidden = True
        Worksheets("Layout").Range("A106:A110").EntireRow.Hidden = True
End Select

Select Case Target
      Case "orange"
        Worksheets("Layout").Range("A168:A170").EntireRow.Hidden = False
        Worksheets("Layout").Range("A171:A175").EntireRow.Hidden = False
      Case Else
        Worksheets("Layout").Range("A168:A170").EntireRow.Hidden = True
        Worksheets("Layout").Range("A171:A175").EntireRow.Hidden = True
End Select

Select Case Target
      Case "grau"
        Worksheets("Layout").Range("A263:A265").EntireRow.Hidden = False
       Worksheets("Layout").Range("A266:A270").EntireRow.Hidden = False
      Case Else
        Worksheets("Layout").Range("A263:A265").EntireRow.Hidden = True
        Worksheets("Layout").Range("A266:A270").EntireRow.Hidden = True
End Select
Application.ScreenUpdating = True

End Sub


Wie gesagt die Datei wird mit dem ersten Makro importiert (funktioniert wunderbar!) aber das ein/ausblenden Makro "greift" nicht, ich glaube die importierte Zelle wird als leer "wahrgenommen". Dazu muss ich sagen, dass ich die beiden Sub's einfach untereinander reinkopiert habe.

Vielen lieben Dank im Voraus!

LG,
Liana

Ich gebe zu, ich habe keine Ahnung von VBA, aber ich würde sehr gerne lernen!


Antwort schreiben

Ähnliche Themen

Zeilen und Spalten einer Matrix ausblenden
aipaip  28.10.2009 - 169 Hits - 5 Antworten

Trotz Blattschutz ein-/ausblenden von Zeilen über Optionsfeld
TIOSIFI  11.03.2010 - 220 Hits - 3 Antworten

Zeilen auf einem anderen Arbeitsblatt Ein/Ausblenden
juppjuppes  20.05.2010 - 124 Hits - 3 Antworten

Zeilen ausblenden in Excel 2007 mit Schalter
PlaNeo  18.08.2010 - 149 Hits - 1 Antwort

Daten aus Excel-Formular in anderes Excel-Formular importieren
Chris-1988  30.09.2010 - 239 Hits - 13 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026