PDA

Vollständige Version anzeigen : Liste (neue Zeile einfügen)


xli89
16.07.2012, 21:44
Hallo liebe Community!

Da ich schon einige Zeit (ca. 5-6 Jahre) weg bin von der VBA-Programmierung, schaffe ich fast nicht mehr die einfachsten Sachen, deswegen ersuche ich euch um eure Hilfe, da ich bis Freitag dieses "Miniprogramm" fertig haben muss.

Es ist ganz einfach eine Art "Anlagenverzeichnis", d.h. ich habe einen Button (Name: Neu), welcher mir ein neues Fenster öffnet. In diesem Fenster sind drei Textfelder (Bsp: Nummer, Name, Leistung). In diese Textfelder gebe ich Werte ein und wenn ich dann auf den Button "Einfügen" klicke soll es in der Excel-Tabelle erscheinen.

Bis zu den Textfeldern etc. schaffe ich es, jedoch wie funktioniert dann mein Button "Einfügen" d.h. wie bekomme ich die Daten von meinen Kästchen in meine Tabelle.

Und die nächste Frage, welche daraus resultiert ist, falls ich beispielsweise schon 5 "Anlagen" eingefügt habe und "Neu" klicke, dann soll die neue Anlage natürlich in der sechsten Zeile dargestellt werden.

Vielleicht wäre einer so lieb mir ein kurzes Beispiel zu erstellen, aus welchem ich dann ablesen kann, wie ich es zu programmieren habe ;)

Mit freundlichen Grüßen

josef e
16.07.2012, 22:19
<div style="width:98%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo ?,

ein einfaches Beispiel.


</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

xli89
19.07.2012, 18:24
Hallo Sepp!

Ein Wahnsinn, ich weiß gar nicht wie ich dir danken kann! Vielen lieben Dank! :boah: :top: :knuddel:

Ich habe nur noch folgendes Problem. Ich hab das Programm ein wenig umgeschrieben und hänge nur noch bei einer Kleinigkeit und zwar will ich, dass Leistung sowie kW als Zahl in die Zelle geschrieben wird, wie die Inventarnummer, nur bekomme ich keine "if-Befehle" mehr in den Code hinein, da er mir dann immer eine Fehlermeldung ausgibt.

With Sheets("Bis 1,5 kg")
lngRow = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row + 1)
If IsNumeric(txtInventarnummer) Then
.Cells(lngRow, 1) = CLng(txtInventarnummer)
Else
.Cells(lngRow, 1) = txtInventarnummer
End If
.Cells(lngRow, 2) = txtBezeichnung
.Cells(lngRow, 3) = txtLeistung
.Cells(lngRow, 4) = txtKühlmittel
.Cells(lngRow, 5) = txtkW
.Cells(lngRow, 6) = txtmaxkW
.Cells(lngRow, 7) = txtGebäude
.Cells(lngRow, 8) = txtBemerkung
.Cells(lngRow, 9) = txtÜberprüfung2010
.Cells(lngRow, 10) = txtÜberprüfung2011
.Cells(lngRow, 11) = txtÜberprüfung2012
End With

txtInventarnummer = ""
txtBezeichnung = ""
txtLeistung = ""
txtKühlmittel = ""
txtkW = ""
txtmaxkW = ""
txtGebäude = ""
txtBemerkung = ""
txtÜberprüfung2010 = ""
txtÜberprüfung2011 = ""
txtÜberprüfung2012 = ""
txtInventarnummer.SetFocus


Wie kann ich das nun umschreiben um txtLeistung und txtkW als Zahl in der Zelle darzustellen. Achja zu txtLeistung sollte noch "kg" hinzugefügt werden - also beispielsweise wenn ich 5,21 eingebe, dann sollte 5,21 kg in der Zelle stehen - ist dies schwierig umzusetzen oder eine Kleinigkeit für dich :)?

Bitte noch einmal um kurze Hilfe! Vielen Dank nochmals und schönen Abend!

Liebe Grüße Manuel

Hajo_Zi
19.07.2012, 18:28
Hallo manuel,

ich sehe Deine Versuche nicht und habe darum keine Ahnung wo das hin soll. Ich hätte es vor End With geschrieben. Warum If?

xtLeistung &" kg"

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm" onclick="window.open(this.href);return false"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

xli89
19.07.2012, 18:52
Hallo Hajo!

Hier im Anhang befindet sich mein "Anlagenverzeichnis". Das ganze klappt eigentlich richtig gut, jedoch will ich einfach, die Spalte Leistung und die Spalte kw bzw. max. kW als Zahl und nicht als Text dargestellt wird, so wie die Inventarnummer.

Zudem möchte ich bei der Spalte Leistung das Kürzel " kg" angefügt haben! Ich hoffe du verstehst was ich meine!

LG Manuel

Hajo_Zi
19.07.2012, 18:57
Hallo Manuel,

Punkt 2 ist erledigt.
Zu Punkt ein eine Textbox einhält das was der Name schon sagt Text benutze eine Umwandlungsfunktion =Cdbl(Textbox1)
Ich sehe keine notwendigkeit eine Datei runter zu laden.
Der Dateiname sollte was mit dem Problem zu tun haben. Ich habe mir z.B. einen Ordner angelegt in dem ich alle Dateien aus dem Internet speichere. Bei Dateinamen wie Test., Mappe.., Beispiel wird eine vorhandene überschrieben.
<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

xli89
19.07.2012, 19:10
Hallo Hajo!

Vielen Dank! Das mit den kg habe ich geschafft!
Die Textbox Inventarnummer wird ja schon in ein Zahlenformat umgewandelt, durch:

With Sheets("Bis 1,5 kg")
lngRow = Application.Max(2, .Cells(.Rows.Count, 1).End(xlUp).Row + 1)
If IsNumeric(txtInventarnummer) Then
.Cells(lngRow, 1) = CLng(txtInventarnummer)
Else
.Cells(lngRow, 1) = txtInventarnummer
End If
.Cells(lngRow, 2) = txtBezeichnung
.Cells(lngRow, 3) = txtLeistung & " kg"
.Cells(lngRow, 4) = txtKühlmittel
.Cells(lngRow, 5) = txtkW & " kW"
.Cells(lngRow, 6) = txtmaxkW & " kW"
.Cells(lngRow, 7) = txtGebäude
.Cells(lngRow, 8) = txtBemerkung
.Cells(lngRow, 9) = txtÜberprüfung2010
.Cells(lngRow, 10) = txtÜberprüfung2011
.Cells(lngRow, 11) = txtÜberprüfung2012
End With

Wenn ich jedoch exakt das selbe mit If IsNumeric(txtLeistung) etc. mache, passiert jedoch rein gar nichts! Eventuell liegt darin mein Denkfehler!

LG Manuel

Hajo_Zi
19.07.2012, 19:13
Hallo Manuel,

ich muss Blind sein in Deinem Coode wird nur eine Textbox umgewandelt. Du kannst eine Textbox nur umwandeln, wenn sie Zahlen enthält, das hast Du ja bei der Eingabe geprüft. Leere kannst du nicht umwandeln.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

xli89
19.07.2012, 19:24
Ich steh jetzt gerade vollkommen auf der Leitung :rolleyes:.
Eigentlich will ich ja die Textbox quasi umwandeln, da in die
Textbox (txtLeistung) immer Zahlen eingegeben werden und
diese sollen einfach im Excel-Arbeitsblatt auch als Zahlen
ausgegeben werden.

LG Manuel

Hajo_Zi
19.07.2012, 19:26
Hallo Manuel,

das hatte ich schon beantwortet. Ich muss mich nicht wiederholen.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Zai-Ba
20.07.2012, 09:31
Hallo Manuel,

probier mal mit deinen Werten folgendes zu machen:
With .Cells(lngRow, 3)
.Value = Clng(txtLeistung)
.NumberFormat = "0.00 " & chr(34) & "kg" & Chr(34)
End With

Erklärung: du wandelst erst deinen Text in einen Wert (long) um und trägst ihn in die Zelle ein. Danach stellst du das Zellenformat ein, dass er dir den Wert auf zwei Nachkommastellen rundet und dahinter "kg" anzeigt.