Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Zelle links-oben und rechts-unten erhalten

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:  Zelle links-oben und rechts-unten erhalten (1583 mal gelesen)
Fritz5002
Mitglied
Techniker


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

Beiträge: 29
Registriert: 23.10.2009

Win XP

erstellt am: 30. Nov. 2009 15:15    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,

kann mir jemand einen Tip geben, wie ich aus einem ausgewählten Bereich die Position der Zelle links oben und die von rechts unten erhalten kann?
Ich möchte mit der Maus einen Bereich auswählen und diesen anschließend mit Zwischensummen und Gesamtwert berechnen und nach einer bestimmten Vorgabe formatieren lassen.

Das Makro muss unter Excel-2000, -2003 und -2007 laufen können.

Hab bis heute keine Idee, wie ich an diese Zellpositionen ran komme.

Gruß Fritz

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

Paulchen
Mitglied
Bauing./SW-Entwickler


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

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 30. Nov. 2009 15:49    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 Fritz5002 10 Unities + Antwort hilfreich

Hallo Fritz,

teste diesen Ansatz:

Code:
Sub auswahl_pos()

Dim rgFirst As Range
Dim rgLast As Range

  'Sicherheitsabfragen
  If Selection.Cells.Count < 2 Then Exit Sub 'BEREICH, keine einzelne Zelle; bei Bedarf mit Rows/Columns verfeinern
  If Selection.Cells.Count <> Selection.Rows.Count * Selection.Columns.Count Then Exit Sub 'mehrere Bereiche - z. B. via Strg-Taste - markiert
 
  'Belegen
  Set rgFirst = Selection.Cells(1)
  Set rgLast = Selection.Cells(Selection.Cells.Count)
 
  'Kontrolle
  Debug.Print rgFirst.Address 'zu Testzwecken: Im Direktbereich ausgeben...
  Debug.Print rgLast.Address
 
  '... weiterer Code
 
  'Putzen
  Set rgFirst = Nothing
  Set rgLast = Nothing

End Sub


------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

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: 30. Nov. 2009 17:04    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 Fritz5002 10 Unities + Antwort hilfreich

Nur noch zur Ergänzung, mehrere Bereiche lassen sich auch über Areas abfragen, zB:
Code:

With Selection
    If .Cells.Count < 2 Or .Areas.Count > 1 Then Exit Sub
End With

lg Nancy

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

Fritz5002
Mitglied
Techniker


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

Beiträge: 29
Registriert: 23.10.2009

Win XP

erstellt am: 30. Nov. 2009 21:23    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 Paulchen,
das ist genau das RICHTIGE. An die Möglichkeit das jemand mehrere Bereiche selektiert hatte ich noch garnicht gedacht. Ist für meine Aufgabenstellung auch nicht erwünscht. Damit ist die Verzweigung zum Ausgang für diesen Fall eine sehr gute Ergänzung. Besten Dank.
Hab die Units schon abgeschickt.

Hallo Startrek,
schönen Dank für diese mögliche Ergänzung. Ich werd sie in diesem Fall zwar nicht benötigen, aber es ist eine Möglichkeit für andere Fälle. Man weiss ja nie, ob man es einmal braucht. 

Gruß Fritz   

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

Paulchen
Mitglied
Bauing./SW-Entwickler


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

Beiträge: 1227
Registriert: 19.08.2004

Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice

erstellt am: 01. Dez. 2009 14:34    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 Fritz5002 10 Unities + Antwort hilfreich

Tach,
Zitat:
Ich werd sie in diesem Fall zwar nicht benötigen...
Fast richtig ;-). Startreks Code ist eine saubere Vereinfachung meines Vorschlages - ich hatte nur .Areas gerade nicht parat.
Code:
If Selection.Cells.Count < 2 Then Exit Sub
If Selection.Cells.Count <> Selection.Rows.Count * Selection.Columns.Count Then Exit Sub
'lässt sich zusammenfasse in -->
If Selection.Cells.Count < 2 Or Selection.Areas.Count > 1 Then Exit Sub

Meine Aktion "Zeile x Spalte" ist umständlicher, länger, erfordert eine zusätzliche Berechnung... Mit startreks Vorschlag werden zwei Fliegen mit einer Klappe geschlagen - in einer Zeile: Besser, schneller, übersichtlicher.

------------------
DIN1055.de  |  Lastannahmen für Anwender NEU: Foren zu DIN 1055

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

Beverly
Mitglied
Dipl.-Geologe (Rentner)


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

Beiträge: 394
Registriert: 11.08.2007

erstellt am: 01. Dez. 2009 16:22    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 Fritz5002 10 Unities + Antwort hilfreich

Hi zusammen,

hier noch eine Möglichkeit (auch mit Auslesen bei mehreren selektierten Zellen):

Code:
Sub ExckzellenAuslesen()
    Dim strBereich As String
    Dim raBereich As Range
    If Selection.Areas.Count > 1 Then
        For Each raBereich In Selection.Areas
            strBereich = strBereich & vbLf & raBereich.Cells(1).Address & " " & raBereich.Cells(raBereich.Cells.Count).Address
        Next raBereich
    Else
        If Selection.Cells.Count = 1 Then
            strBereich = Selection.Cells(1).Address
        Else
            strBereich = Selection.Cells(1).Address & " " & Selection.Cells(Selection.Cells.Count).Address
        End If
    End If
    MsgBox strBereich
End Sub

------------------
Bis später,
Karin

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

Fritz5002
Mitglied
Techniker


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

Beiträge: 29
Registriert: 23.10.2009

Win XP

erstellt am: 06. Dez. 2009 18:10    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

Einen schönen Abend wünsch ich.

Schönen Dank für die Anregungen. Selbst bin ich schon etwas raus aus der Programmierung. Hatte auch erst etwas Probleme mich hier anzumelden. Dann kam laufend was dazwischen.

Hier meine gewählte (beforzugte) Version:

iZeileOben = Selection.Cells(1).Row
iZeileUnten = Selection.Cells(Selection.Cells.Count).Row
iSpalteLinks = Selection.Cells(1).Column
iSpalteRechts = Selection.Cells(Selection.Cells.Count).Column

Das sind alles einfache Variable, keine Objekte. Damit kann ich bei dem weiteren Zellzugriff im direkten Gedankengang die entsprechenden Ausführungen ansteuern.


Die Variante

If Selection.Areas.Count > 1 Then....

nutze ich in diesem Fall nur für die sichere Ausgrenzung
einer Mehrfachauswahl über die Ctrl-Taste. Das war eine gute Idee.

Ihr habt mir sehr geholfen
Mit freundlichen Grüßen Fritz

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

Fritz5002
Mitglied
Techniker


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

Beiträge: 29
Registriert: 23.10.2009

Win XP

erstellt am: 18. Apr. 2010 19:29    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 Beverly,

wie es so ist, habe heute noch einmal rein gucken müssen, weil ich jetzt einen Fall habe, wo ich eine Mehrfachauswahl abfragen muss.
Besten Dank noch einmal für die Anregungen.

Mit der Bereichsabfrage damals habe ich mir eine diverse Summenerfassung gebastelt. Funktioniert bestens, da ich das Makro sehr oft benötige ist es auch eine große Erleichterung. Ich greife mit der Maus die Bereiche, die für eine Summenbildung benötigt werden. Mit der Unterscheidung
1. nur ein Feld (ist das Ergebnis)
2. nur eine Spalte ergibt eine Summe und
3. mehrere Spalten nebeneinander ergeben je eine Summe und eine gemeinsame Summe.
Das Ergebnis jeweils immer Fett hervor gehoben und doppelt unterstrichen. Also mit vollständiger Formatierung. Funktioniert einfach bestens.

Das zur Info, was dabei rausgekommen ist.

Mit der Mehrfachabfrage bin ich jetzt auch etwas schlauer. Habe die Mehrfachabfrage für ein anderes Programm getestet (ich kam mit dem Beispiel gut klar, konnte es auch umstellen, ohne selektieren) und kam zu dem Ergebnis, dass ich einen anderen Weg beschreiten muss, der variabler ist. Der oder die Bereiche könnten sich irgend wann verändern und dann müßte ich das Programm umschreiben. Ich mache es mit einfacher Abfrage und Verzweigungsmöglichkeit über eine Hilfsdatei, in der die Wege dann beliebig variieren können.
Trotzdem vielen Dank für die Unterstützung.

Beste Grüße von Fritz 

[Diese Nachricht wurde von Fritz5002 am 19. Apr. 2010 editiert.]

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