Zum Inhalt springen

VBA. unbrauchbare zeilen löschen?!


Koma9

Empfohlene Beiträge

Hallo!

hab da ein problem ich will mit einer VBA Schleife (for..Next) werte aus einer tabelle in eine andere tabelle einfügen, jedoch sind in der ausgangstabelle eine leerzeilen oder zeilen die ich nicht da haben will. aber wenn ich mit einer laufenden nummer arbeite geht das doch nicht anders oder? oder wie kann ich dann automatisch die unbrauchbaren zeilen löschen, ohne das leerzeilen entstehen?

Erbitte um HILFE!

Link zu diesem Kommentar
Auf anderen Seiten teilen

bin zwar kein VB- Mensch aber... was haeltst du denn von einem Counter, der dir die Anzahl der unbrauchbaren Zeilen angibt ?

so das du dann (vereinfachte Darstellung)


for i := 0 to SourceGrid.Lines.Count - 1 do

begin

  if Filter(SourceGrid.Lines[i]) then

    FilterCount := FilterCount +1;

  else

    copy(DestGrid.Lines[i-FilterCount],SourceGrid.Lines[i]);

end;

wie gesagt, so aehnlich muesst das auch in VB ausschauen... nur hab ich das noch ned wirklich gemacht... BASIC hatte ich mit gwBasic an den Nagel gehaengt ;o)

aber ich denke, der Text oben ist verstaendlich

Uruz

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

steht in den Zellen die Du nicht dabei haben willst immer der gleiche Wert oder garnichts?

Wenn ja dann brauchst Du nur eine Verzweigung in die Schleife einbauen:

for s = 1 to [Anzahl der Spalten]

for z = 1 to [Anzahl der Zeilen]

if (Cells(z, s).Value = "") or (Cells(z, s).Value = "[Der Wert eben]") then

next z

else

... {Inhalt in Spalte "z" und die zu letzt bearbeitete Zeile + 1 einfügen (kann man entweder immer wieder in einer Variablen zwischenspeichern oder per SpecialCells abrufen)}

Vielleicht hilft es Dir ja.

Gruss

HansiPansi

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zuerst musst du feststellen, welche Merkmale ungültige Zeilen haben (z.b. Leerzeichen, oder ganz leere Zeilen, oder sonstetwas).

Dann gehst du los und gehst deine Ausgangtabelle durch :

(Leider beherrsche ich kein VB, deswegen nur ein Beispiel)


for Index := 0 to Ausgangstabelle.Count - 1 do begin

  if Gueltig (Ausgtb.Aktuelle Zeile) then begin

    ZielTabelle Append (Neuen Satz anlegen, Nummer eines   hochzählen)

    Zeile in ZielTabelle kopieren

    end;

  Next;

    end;

so ungefähr müsste es aussehen. Also, erst auf Gültigkeit prüfen, und wenn diese gegeben ist, dann neuen Datensatz anlegen und Zeile kopieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...