Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  zeilennummer + private sub ????

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  zeilennummer + private sub ???? (3562 mal gelesen)
Nico Laufer
Mitglied
Dipl. Ing. (FH)


Sehen Sie sich das Profil von Nico Laufer an!   Senden Sie eine Private Message an Nico Laufer  Schreiben Sie einen Gästebucheintrag für Nico Laufer

Beiträge: 264
Registriert: 05.02.2004

Pro/E WF2
M180

erstellt am: 21. Dez. 2004 16:16    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hallo zusammen,

habe so gut wie keine ahnung von excel.

wollte eine spalte z.b. a1:a20 abfragen, ob sich ein eintrag in einer zelle befindet. wenn sich ein eintrag in der zelle befindet, soll die zeilennummer als zahl übergeben werden.
beispiel: zelle a7 hat den wert 9, dann soll die zahl 7 übergeben werden.

manche beispiel in der vba-hilfe funktionieren irgendwie nicht.
kann mir vieleicht jemand erklären, wie man ein vba-programm richtig startet (private sub -> was kommt dahinter und was heißt das?) und beendet (end sub -> was soll end sub heißen?).

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tunnelbauer
Ehrenmitglied V.I.P. h.c.
Bauingenieur



Sehen Sie sich das Profil von tunnelbauer an!   Senden Sie eine Private Message an tunnelbauer  Schreiben Sie einen Gästebucheintrag für tunnelbauer

Beiträge: 7085
Registriert: 13.01.2004

ich hab eh keine Probleme damit...

erstellt am: 21. Dez. 2004 16:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Nico Laufer 10 Unities + Antwort hilfreich

Hallo Nico,

zu deinen VBA-Fragen sag ich nix - da gibts Spezialisten dafür - aber nicht mich.

Zu deinem Problem:

das kannst du generell mit SVERWEIS lösen. Siehe dazu in deiner Hilfe nach (da funktionieren auch die Beispiele und du brauchst für das ganze kein VBA).

Generelle Anmerkung dazu:

wenn in deiner Spalte A die zu suchenden Werte stehen, dann muss in der Spalte B der zu übergebende Wert stehen (eine Übergabe der Zeilennummer mit SVERWEIS ist nicht möglich - dazu müsste man das mit VBA lösen). (SVERWEIS war erst vor kurzem Thema hier; findest du also auch mit der Forumssuche)

------------------
Grüsse

Thomas

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 21. Dez. 2004 16:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Nico Laufer 10 Unities + Antwort hilfreich

Hi Nico,

mit Formel: =Zeile()

mit vba:

Code:

Sub x()
  Dim cell As Range
  For Each cell In Range("A1:A20")
      If Not IsEmpty(cell) Then cell.Value = cell.Row
  Next
End Sub


Gruss Nancy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 21. Dez. 2004 17:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Nico Laufer 10 Unities + Antwort hilfreich

Ach, vergessen/überlesen die Sache mit den Sub's ...

Ich versuchs mal, auch wenn ich nicht grade in Programmierung promoviert habe ;-)
Also eine 'sub' ist eine ganz normale Prozedur/Routine, wird eingeleite mit:

Code:

Sub irgendeinName() 'Aufruf
  dim variable as irgendwas 'evtl. Deklarationen
  codeline 1 'ab hier beginnt die Codeausführung zeilenweise v.o.n.u.
  codeline 2
  ...
  codeline x
End Sub 'Ende Fine Schluss

Normale 'Subs' gehören üblicherweise/meist in 'normale' Module.

Eine 'Private Sub' ist ein Kind, also es hat Eltern, zu denen's gehört.
Beispielsweise Private Sub Worksheet_Change (byval target as range),
in dem Falle ist das Tabellenblatt A in welchem sich der Code befindet der Vormund ;-)
Anderst du Tabelle B, tut sich nix, da der Code unter Private von A steht.
So ähnlich verhält sich das auch mit Commandbuttons in Tabellenblättern/Userforms,
also alle Steuerelemente egal welcher Art, reagieren 'privato' sozusagen.
Da gibts die verschiedensten Ereignisse, kommt aufs Steuerelement an.
Kannste ja mal antesten, Rechtsklick auf Tabellenreiter 'Tabelle1' > Code anzeigen:

darein kopierste mal:

Code:

Private Sub Worksheet_SelectionChange(byval target as range)
  target.value=target.row
  call machwas
end sub

und im VBE unter Einfügen > normales Modul, kopierste das rein:
Code:
sub machwas()
  msgbox "done"
end sub

Sobald du nun Activcell in _der_ Tabelle änderst, ruftst du faktisch die Private Sub auf,
welche wiederum die normale Sub aufruft.
In Excel unter Extras/Makros/ausführen [Alt+F8] findest Du ebnfalls nur die Sub 'machwas',
nicht die Private, die is nämlich eben _privato_

So, muss reichen für's erste! ;-))

lg Nancy    

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Juergen Schmidetzki
Mitglied
Administrator keytech-PLM


Sehen Sie sich das Profil von Juergen Schmidetzki an!   Senden Sie eine Private Message an Juergen Schmidetzki  Schreiben Sie einen Gästebucheintrag für Juergen Schmidetzki

Beiträge: 292
Registriert: 06.11.2000

EDM: Workmanager 11.61
CAD: ME10 V12
Solidworks 2005

erstellt am: 22. Dez. 2004 07:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Nico Laufer 10 Unities + Antwort hilfreich

Hallo und guten Morgen,

die Verwendung von IsEmpty(Cell), wie von startrek beschrieben, ist nach meinen Erfahrungen mit Vorsicht zu geniessen.
Solange die Zelle nicht im Makro bearbeitet/veraendert wird, arbeitet diese Funktion korrekt; wenn ich aber die Zelle leere und dann die Funktion aufrufe, 'geht's in die Hose'.

Beispiel:
Sub x()
  Dim cell As Range
  Cells(1, 4).Value = ""
  For Each cell In Range("A1:A20")
      If Not IsEmpty(cell) Then cell.Value = cell.Row
  Next
End Sub

Hier wird auch in Zelle A4 die Zeilennummer eingetragen, obwohl diese definitiv geleert wird. Deswegen wuerde ich dann das machen:

Sub x()
  Dim cell As Range
  For Each cell In Range("A1:A20")
      If cell.value <> "" Then cell.Value = cell.Row
  Next
End Sub


Viele Gruesse

Juergen

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Nico Laufer
Mitglied
Dipl. Ing. (FH)


Sehen Sie sich das Profil von Nico Laufer an!   Senden Sie eine Private Message an Nico Laufer  Schreiben Sie einen Gästebucheintrag für Nico Laufer

Beiträge: 264
Registriert: 05.02.2004

Pro/E WF2
M180

erstellt am: 22. Dez. 2004 10:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

hallo zusammen,

vielen dank für eure schnellen antworten.

das hat mir wirklich weitergeholfen.

schöne grüße
nico

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

startrek
Moderator
Architekt


Sehen Sie sich das Profil von startrek an!   Senden Sie eine Private Message an startrek  Schreiben Sie einen Gästebucheintrag für startrek

Beiträge: 1361
Registriert: 13.02.2003

.

erstellt am: 22. Dez. 2004 23:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Nico Laufer 10 Unities + Antwort hilfreich

Hi Jürgen,  hi all,

war mir zwar in dem Moment bissle egal, die Sache mit dem empty(),
aber du hast recht, ist 'ne tückische sache mit dem 'empty-dingsda' ;-))
Für die 'wasserdichte' Variante - tja, so Dinge fallen einem in real Life wohl
zu oft auf die Füsse - einfach mal thanks.

@all:
Ich denke mal die Zeit ist reif, wir schreiben den 22.12.2004,
an dieser Stelle mal einen besinnlichen 'Haltepunkt' gesetzt:
Wünsch' euch allen hier ein gesegnetes Fest!

lieben Gruss,
Nancy
     

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz