AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Makro Programmierung Excel - VB

Makro Programmierung Excel - VB

Ein Thema von atgis · begonnen am 4. Jul 2008 · letzter Beitrag vom 29. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2   
atgis
(Gast)

n/a Beiträge
 
#1

Makro Programmierung Excel - VB

  Alt 4. Jul 2008, 19:12
Hi,

Ich hab ein ganz simples Problemchen...und da ich schon zulange mich nicht mehr mit dem proggen befasst habe, fehlt mir der Ansatz.

Also mein Problem:

Ich habe hier eine Excel Tabelle, in der sollen per Formular einpaar sachen bequem eingetragen werden.
Nun soll aber jedesmal, der neue Eintrag in der nächsten Zeile darunter stehen...

http://s7.directupload.net/images/080704/agtouyd9.jpg

Code:
Private Sub CommandButton1_Click()
If TextBox1.Value + TextBox2.Value + TextBox2.Value = "" Then
 GoTo nix
End If

' i = i +1

Sheets("Tabelle1").Cells(i, 1).Value = Date
Sheets("tabelle1").Cells(i, 2).Value = TextBox1
Sheets("tabelle1").Cells(i, 3).Value = TextBox2
Sheets("tabelle1").Cells(i, 4).Value = Time$
Sheets("tabelle1").Cells(i, 5).Value = TextBox3



nix:
End Sub
Dafür habe ich hier schon das i - als zähler, aber mir fehlt jetzt der Ansatz wie ich eine Schleife realisiere, dass ein neuer Eintrag immer eine Zeile nach unten rutscht -.-
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Makro Programmierung Excel - VB

  Alt 4. Jul 2008, 19:21
Zitat von atgis:
Hi,

Ich hab ein ganz simples Problemchen...und da ich schon zulange mich nicht mehr mit dem proggen befasst habe, fehlt mir der Ansatz.

Also mein Problem:

Ich habe hier eine Excel Tabelle, in der sollen per Formular einpaar sachen bequem eingetragen werden.
Nun soll aber jedesmal, der neue Eintrag in der nächsten Zeile darunter stehen...

http://s7.directupload.net/images/080704/agtouyd9.jpg

Code:
Private Sub CommandButton1_Click()
If TextBox1.Value + TextBox2.Value + TextBox2.Value = "" Then
 GoTo nix
End If

' i = i +1

Sheets("Tabelle1").Cells(i, 1).Value = Date
Sheets("tabelle1").Cells(i, 2).Value = TextBox1
Sheets("tabelle1").Cells(i, 3).Value = TextBox2
Sheets("tabelle1").Cells(i, 4).Value = Time$
Sheets("tabelle1").Cells(i, 5).Value = TextBox3



nix:
End Sub
Dafür habe ich hier schon das i - als zähler, aber mir fehlt jetzt der Ansatz wie ich eine Schleife realisiere, dass ein neuer Eintrag immer eine Zeile nach unten rutscht -.-
Hallo, da gibt es genug Tools..schau mal z.B. XLSREADWRITE_II oder OLE mit Hand..findest Du sicher hier im Forum viele Anregungen.
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Makro Programmierung Excel - VB

  Alt 4. Jul 2008, 19:29
Hallo atgis,

das hat aber nichts mit Object – Pascal zu tun.

VB:

z.B.

1. For … Next - Schleife

For i = 1 To 10
..

Next i

2. While … Wend – Schleife

While I < 10


Wend

3. Do While … Loop

Do While i < 10
….

Loop

4. Do Until … Loop

Do Until i < 10


Loop


Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
934 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: Makro Programmierung Excel - VB

  Alt 4. Jul 2008, 21:00
Hallo,

ein Problem, Programmieren, Excel benutzen oder was?

Das Verschieben der Eingabemaske in Excel wird/kann ganz einfach festgelegt werden:
Menü->Extras->Optionen, Register 'Bearbeiten', Checkbox 'Markierung nach den Drucken der Eingabetaste verschieben' ->
Richtung: (Unten, Rechts, Oben, Links);

?Oder habe ich(was ja mal vorkommen kann) etwas Falsch verstanden, dann bitte Entschuldigung.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#5

Re: Makro Programmierung Excel - VB

  Alt 4. Jul 2008, 21:47
Hallo,

auf der Seite (EXCEL-Lösungsbeispiele) findest Du in der Datei dialog.zip einen Lösungsansatz für dein Problem.
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Makro Programmierung Excel - VB

  Alt 4. Jul 2008, 22:27
Hallo atgis,

ich habe jetzt erst verstanden was Du meinst.
Es muss zuerst die letzte Zeile bestimmt werden und dann die neuen Werte an die neue Stelle geschrieben werden.

Code:
Function letzteZeile() As long
   Dim i As integer, letzteMin As long, letzteMax AS long
   For I = 1 To 256
      letzteMin = Cells(65536, i), End(xlUp).Row
      if letzeMax < letzteMin then
         letzteMax = LetzteMin
      endif
   next i
   letzteZeile = letzteMax
end function
Code:
private sub Commandbutton1_click()
     Cells (letzteZeile+1, 1).Value = Date
     Cells (letzteZeile+1, 2).Value = TextBox1
     … usw.
end sub
Geschrieben und nicht ausprobiert.


Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#7

Re: Makro Programmierung Excel - VB

  Alt 5. Jul 2008, 09:51
Zitat von Chemiker:
Hallo atgis,

ich habe jetzt erst verstanden was Du meinst.
Es muss zuerst die letzte Zeile bestimmt werden und dann die neuen Werte an die neue Stelle geschrieben werden.

Code:
Function letzteZeile() As long
   Dim i As integer, letzteMin As long, letzteMax AS long
   For I = 1 To 256
      letzteMin = Cells(65536, i), End(xlUp).Row
      if letzeMax < letzteMin then
         letzteMax = LetzteMin
      endif
   next i
   letzteZeile = letzteMax
end function
Funktioniert nicht...



Ich möchte einfach, dass nach jedem Klick auf dem "setzen" Button i um 1 erhöht wird und somit der neue Eintrag eine Zeile weiter unten eingetragen wird...

Code:
Sheets("Tabelle1").Cells(i, 1).Value = Date
Sheets("tabelle1").Cells(i, 2).Value = TextBox1
Sheets("tabelle1").Cells(i, 3).Value = TextBox2
Sheets("tabelle1").Cells(i, 4).Value = Time$
Sheets("tabelle1").Cells(i, 5).Value = TextBox3
http://s5.directupload.net/images/080705/bbc9dlbg.jpg
http://s4.directupload.net/images/080705/v2vh7xsg.jpg
http://s4.directupload.net/images/080705/ix4uoz3q.jpg
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#8

Re: Makro Programmierung Excel - VB

  Alt 5. Jul 2008, 10:13
Was funktionieren würde wäre:
Code:
Range("A2").Value = Range("A2").Value + 1

Sheets("Tabelle1").Cells(Range("A2").Value, 1).Value = Date
Sheets("tabelle1").Cells(Range("A2").Value, 2).Value = TextBox1
Sheets("tabelle1").Cells(Range("A2").Value, 3).Value = TextBox2
Sheets("tabelle1").Cells(Range("A2").Value, 4).Value = Time$
Sheets("tabelle1").Cells(Range("A2").Value, 5).Value = TextBox3
Doch fangen die Einträge erst bei der Zeile A39670 an
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.858 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Makro Programmierung Excel - VB

  Alt 5. Jul 2008, 11:02
Hallo atgis,

leider einige Tipp-Fehler, so müsste es funktionieren:

Code:
Function letzteZeile() As Long
   Dim i As Integer, letzteMin As Long, letzteMax As Long
   For i = 1 To 256
      letzteMin = Cells(65536, i).End(xlUp).Row
      If letzteMax < letzteMin Then
         letzteMax = letzteMin
      End If
   Next i
   letzteZeile = letzteMax
End Function
Code:
Sub befuellen()
  Cells(letzteZeile + 1, 1) = "Test"
  Cells(letzteZeile, 2) = "Test2"
End Sub
Versuchs nochmal.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
atgis
(Gast)

n/a Beiträge
 
#10

Re: Makro Programmierung Excel - VB

  Alt 5. Jul 2008, 12:42
Ja Funktioniert...aber dauert sehr lange... es füllt die 5 Zeilen innerhalb von 2 sek. aus... Das liegt aber wohl an den 65536...

Danke!

Nur schade das es nicht noch simpler ging...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz