Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Leere Zellen mit Wert füllen bis Ende genutze Zellen in Nachbarspalte

682 views
Skip to first unread message

Sven Weindel

unread,
May 29, 2001, 10:44:34 AM5/29/01
to
Als VBA-Anfänger versuche ich eine Spalte (F) mit dem Wert 10 (von Feld F1)
zu füllen, aber nur in den Feldern, in denen in Spalte A der Wert 'a' oder
'd' ist.

Als Verwirklichung habe ich an folgende Struktur gedacht, leider fehlt mir
der dazugehörige passende Code zur Umsetzung:


Variable Ende = Integer

Ende = Ermittlung Zeilen von Spalte A

Schleife von Zeile F1 bis Zeile F(Ende)

WENN Feld A1 = "a" OR "d"
DANN Wert 10 in aktuelle Zelle (z.B. F2, F3, F4.....)

Next Ende


Vielleicht fallen euch auch einfachere Lösungen mit VBA als meine erdachte
Struktur ein.

Danke im Voraus & Grüße,
Sven


Stefan Onken

unread,
May 29, 2001, 2:11:09 PM5/29/01
to
hallo Sven,
zB so:

Dim i As Integer, letzteZelle
letzteZelle = Range("A65536").End(xlUp).Row
For i = 1 To letzteZelle
If Range("A" & i) = "a" Or Range("A" & i) = "d" Then
Range("F" & i) = 10
End If
Next

ciao
stefan

"Sven Weindel" <sanipu...@gmx.de> schrieb im Newsbeitrag
news:9f0ckg$2hu$1...@news1.wdf.sap-ag.de...

Wilfried Butzek

unread,
May 29, 2001, 5:32:06 PM5/29/01
to

Hallo Sven,

falls ich das richtig verstanden habe, probiere an einer Kopie
Deiner Tabelle - versteht sich von selbst - die nachfolgende
Prozedur nach Anpassung der Bezeichner etc. aus.
Kopiere dazu die Prozedur in das Klassenmodul von Tabelle1
(die Prozedur setzt voraus, das der Wert 10 aus F1 statisch ist) :

Sub SpalteFFuellenWenn()
Dim lngLetzteZeileA As Long
Dim lngZeilenzaehlerA As Long
lngLetzteZeileA = Worksheets("Tabelle1").Range("A65536").End(xlUp).Row
lngZeilenzaehlerA = 0
Worksheets("Tabelle1").Range("A1").Select
Do
If ActiveCell.Value = "a" Or _
ActiveCell.Value = "d" Then
ActiveCell.Offset(0, 5).Value = 10
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
lngZeilenzaehlerA = lngZeilenzaehlerA + 1
Loop Until lngZeilenzaehlerA = lngLetzteZeileA
End Sub

Mit freundlichem Gruss
Wilfried

Sven Weindel

unread,
May 30, 2001, 2:42:23 AM5/30/01
to
Vielen Dank für die Lösungsvorschläge, Stefan & Wilfried, doch leider
funktioniert das in meinem eingebundenen VBA-Makro noch nicht so richtig.

Hier habe ich den kompletten Makro-Code ausgeschnitten, teilweise auch
versucht aus meiner Sicht zu kommentieren (hoffe, man verzeiht mir).
Ganz unten fängt der Teil an, der nicht so ganz klappen will:


Sub Import()
'
' Import Makro
' Makro am 29.05.2001 von D028541 aufgezeichnet
'
' Tastenkombination: Strg+i
'

'Automat. Standard-Formatierungs-Code von VBA?
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\WINNT\Profiles\d028541\Desktop\Projekt\Hicom\1.txt",
Destination:= _
Range("A1"))
.Name = "1_9"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = True
.TextFileOtherDelimiter = ":"
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.Refresh BackgroundQuery:=False
End With
'Sortierung der Tabelle nach Spalte A
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess,
_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
'Ersetzen von EINR-SCSU in a in Spalte A
Selection.Replace What:="EINR-SCSU", Replacement:="a", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
'Ersetzen von EINRICHTEN-SBSCU in d in Spalte A
Selection.Replace What:="EINRICHTEN-SBCSU", Replacement:="d", LookAt:= _
xlPart, SearchOrder:=xlByRows, MatchCase:=False
'Löschen der Inhalte von Spalte F
Columns("F:F").Select
Selection.ClearContents
'Löschen der Zeilen 1,3,4,5,6,7,8 in Spalte B
Range("B2").Select
Range("1:1,3:3,4:4,5:5,7:7,8:8,6:6").Select
Range("A6").Activate
Selection.Delete Shift:=xlUp
'Kopieren des Wertes 10 aus B1 nach F2 und anschließendes Löschen der
1.Zeile
Range("B1").Select
Selection.Copy
Range("F2").Select
ActiveSheet.Paste
Rows("1:1").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
'Speichern der Tabelle
ActiveWorkbook.Save

'Versuch die Zeilen in Spalte F mit Wert 10 von F1 zu füllen, sooft
entweder a oder d in Spalte A steht


Dim i As Integer, letzteZelle
letzteZelle = Range("A65536").End(xlUp).Row
For i = 1 To letzteZelle
If Range("A" & i) = "a" Or Range("A" & i) = "d" Then
Range("F" & i) = 10
End If
Next

End Sub


Danke & Gruß,
Sven


stefan onken

unread,
May 30, 2001, 3:20:37 AM5/30/01
to
hi Sven,
gibt es eine Fehlermeldung ?
Füge mal
Range("A1").Select
nach ActiveWorkbook.Save ein.

--
__________________________________________________________
News suchen, lesen, schreiben mit http://newsgroups.web.de

Sven Weindel

unread,
May 30, 2001, 5:31:32 AM5/30/01
to
Hallo Stefan,

"stefan onken" <onk...@hamburg.beiersdorf.com> wrote in message
news:3b14...@netnews.web.de...


> hi Sven,
> gibt es eine Fehlermeldung ?
> Füge mal
> Range("A1").Select
> nach ActiveWorkbook.Save ein.

danke für den Tip, aber leider habe ich vergessen zu erwähnen, das er mit
diesem Code-Zusatz am Ende:

Range("A1").Select


'Versuch die Zeilen in Spalte F mit Wert 10 von F1 zu füllen, sooft entweder
a oder d in Spalte A steht
Dim i As Integer, letzteZelle
letzteZelle = Range("A65536").End(xlUp).Row
For i = 1 To letzteZelle
If Range("A" & i) = "a" Or Range("A" & i) = "d" Then
Range("F" & i) = 10
End If
Next

mitten mit der Bearbeitung abbricht und die Datei noch abspeichert. Im Feld
A1 steht dann TLNNU und in Feld B1 ein "=", falls dies etwas zu bedeuten
hat.
Ohne diesen Code-Zusatz (oben) läuft mein Makro einwandfrei - allerdings
dann halt ohne die gewünschte Zusatz-Funktion :(

Falls es noch interessiert:

Ich benutze Windows NT 4.0, Service Pack 5 und MS-Excel 2000.


Gruß,
Sven


stefan onken

unread,
May 30, 2001, 8:53:00 AM5/30/01
to
hi Sven,


was meinst du mit "mitten in der Bearbeitung abbricht" ?


stefan

--

Wilfried Butzek

unread,
May 30, 2001, 5:57:22 PM5/30/01
to

Hallo Sven,

Du hast am Tue, 29 May 2001 16:44:34 +0200 einen
"passenden Code" zur Umsetzung einer fest umschriebenen
Aufgabe gesucht. Dazu hast Du IMHO zwei brauchbare
Loesungen erhalten. Nun kommst Du mit weiteren Infos
(Einbinden in bestehende Tabellenstruktur, in aufgezeichnetes
Makro) bzw. laesst Dir diese "wie Wuermer aus der Nase ziehen"
(Stefan Onken hat bereits 2 mal nachfragen mussen).

Empfehlung 1:
Das Posting von Helma Spona "Eine BITTE an alle!"
vom Wed, 30 May 2001 09:22:10 +0200
bitte einmal sorgfaeltig lesen und regelrecht auf der
Zunge zergehen lassen.

Empfehlung 2:
In der VBA-Entwicklungsumgebung einen Haltepunkt
an geigneter Stelle setzen und dann mit Taste F8 die
Prozedur schrittweise ausfuehren lassen. Nach jedem
Schritt sowohl im Tabellenblatt als auch im Code pruefen,
was passiert.

Sorry, ich kann mit "mitten mit der Bearbeitung abbricht


und die Datei noch abspeichert. Im Feld A1 steht dann
TLNNU und in Feld B1 ein "=", falls dies etwas zu bedeuten

hat", ohne die Tabelle vor mir zu haben, auch nichts anfangen.
Es muss ja schliesslich einen Grund dafuer geben, wie die
von Dir beschriebenen Werte in A1 bzw. B1 gelangen. Und
das kann man in der Regel (s. Empfehlung 2) feststellen.

Mit freundlichem Gruss
Wilfried

Sven Weindel

unread,
May 31, 2001, 5:30:56 AM5/31/01
to
Hallo Wilfried, hallo Stefan,

Entschuldigung, das ich Stedan nicht sofort geantwortet habe - ich habe
gestern wenig in der Newsgroup mitgelesen und besuche meinen GMX-Eingang
auch nicht regelmäßig (ich weiß, dafür gehöre ich gesteinigt ;).
Gestern versuchte ich auf mehreren 'Baustellen' mein Projekt mit der
Erstellung einer Datenbank weiter voranzutreiben, wobei ich zeitweise ca. 8
versch. Excel-Fenster hatte, dazu noch 2,3 Access-Fenster und verlor leicht
den Überblick. Dazu kamen dann noch diverse Fehlermeldungen von Excel &
Access.
Schließlich hat der von Stefan geschriebene Code gestern abend nach etlichen
Versuchen ihn einzubinden doch funktioniert, wofür ich mich hiermit einmal
ganz herzlich bedanken möchte - es war vielleicht ein Fehler meinerseits,
danach nicht gleich in die NG zu posten bzw. Stefan's Mail bei GMX zu
beantworten.
Ich habe Helma's Posting gesehen & durchgelesen und werde versuchen, es als
Anfänger auch zu beachten.
Danke für den Haltestopp-Schritt in VBA - daran habe ich echt nicht gedacht.

Momentan stehe ich vor 2 weiteren Fragen:

1. Wie kann ich in MS-Access mit mehreren Trennzeichen eine Textdatei
importieren?
2. Falls 1. ja:
Kann ich MS-Excel-VBA-Code problemlos in MS-Access einbinden?


Grüße & ich versuche soweit eure Regeln zu beachten,
Sven


0 new messages