MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 16.07.2017, 22:45   #1
Fips60
Neuer Benutzer
Neuer Benutzer
Standard Frage - Rahmenlinie ziehen, wenn in Zelle X = "Text"

Hallo zusammen,

als VBA-Neuling lese ich regelmäßig hier mit und habe schon ettliche Tipps und Anregungen gefunden. Jetzt komme ich allerdings alleine nicht mehr weiter.
Ich möchte im Bereich A12: E40 oberhalb der Zellen Rahmenlinien ziehen, wenn in Spalte D12: D40 "Text" steht.
Ich habe hier im Forum folgenden Code gefunden, der jedoch die ganze Zeile unterstreicht:

Code:

Sub Rahmen()
Dim Bereich As Range
Dim Zelle As Range

Set Bereich = Range("B1:B7")

For Each Zelle In Bereich

If Zelle.Value = " +AB" Or _
    Zelle.Value = " +BB" Or _
    Zelle.Value = " +CB" Or _
    Zelle.Value = " +B" Then

Zelle.EntireRow.Borders(xlEdgeBottom).ColorIndex = 1

Set Bereich = Nothing

End If
End Sub
Next
Ich habe das Ganze wie folgt abgeändert:
Code:

 Sub Rahmen()
Dim Bereich As Range
Dim Zelle As Range

Set Bereich = Range("D12:D40")

For Each Zelle In Bereich

If Zelle.Value = "Text" Then

Zelle.Columns("A:E").Borders(xlEdgeTop).Weight = xlMedium
Set Bereich = Nothing
End If
Next

End Sub
Beim Ausführen wird jedoch die Linie im Bereich der Spalten D bis H gezogen und nicht von Spalte A bis E.

Wie muß das Makro geändert werden, damit die Linie richtig gezogen wird?

Danke und Gruß
Fred60
Fips60 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 16.07.2017, 23:38   #2
aloys78
MOF Meister
MOF Meister
Standard

Halllo Fred,

dann versuch es mal damit:
Code:

Option Explicit

Sub Rahmen()
    Dim Bereich As Range
    Dim Zelle As Range

    Set Bereich = Range("D12:D40")
    For Each Zelle In Bereich
        If Zelle.Value = "Text" Then
            Range(Cells(Zelle.Row, "A"), Cells(Zelle.Row, "E")).Borders(xlEdgeTop).Weight = xlMedium
        End If
    Next
End Sub
Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2017, 06:04   #3
Hajo_Zi
MOF Guru
MOF Guru
Standard

mache es ohne VBA.


Tabelle2
 ABCD
1   12
2   Text
3    
die bedingte Formatierung Fülleffekte, Symbole, Datenbalken
werden in dieser Tabelle nicht dargestellt

Bedingte Formatierung Haupttabelle 1  
Wird angewendet auf   Nr. Bed. *Regeltyp  Operator   Formel1   Formel2   Format Schrift Füll-farbe   Unterstrichen   Schrift- farbe Muster   Muster-farbe Typ Bereich
$A:$D01.Bed.: Formel ist =ISTTEXT($D1)   Test         2$A:$D
Bedingte Formatierung Haupttabelle 2 oberere/unterer Bereich    
Wird angewendet auf   Nr. Bed.  Format Zelle Anhalten Auswahl   Anzeige   Anzahl   Durchschnitt   Typ   Bereich
$A:$D01.Bed.   Falsch          2$A:$D
Rahmen
    Links     Rechts     Oben     Unten  
 Wird angewendet auf   Nr. Bed.   Linienart     Farbe     Linienart     Farbe     Linienart     Farbe     Linienart     Farbe  
$A:$D01.Bed. dünn durchgehend  dünn durchgehend  dünn durchgehend  dünn durchgehend 
Die Bedingungen wurden mit Excel-Version ab 2007 ausgelesen.

Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 25.12 einschl. 64 Bit



GrußformelHomepage

__________________

Signatur in jedem Beitrag
In diesem Forum, kann der Beitrag als gelöst gekennzeichnet werde (unten Links). Bitte macht dies. Damit es auch in der Forumsübersicht gekennzeichnet ist.
Bitte Version angeben. Bei keiner Angabe gehe ich von meinen Angaben aus.
Betriebssystem: Windows 10 - 64 Bit, Office 2016 - 32 Bit.
Hajo_Zi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.07.2017, 20:49   #4
Fips60
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Ihr zwei,

vielen Dank, es funktioniert. Ich habe mich für die Lösung von Aloys entschieden, da ich die Linienstärke einstellen kann.

@Aloys:
"Range(Cells(Zelle.Row, "A"), Cells(Zelle.Row, "E")" bedeutet, dass Zelle A bis Zelle E in dieser Zeile als Bereich angegeben wird, in dem die Linie gezogen wird.
Ist das korrekt? Weshalb aber einmal Cells und einmal Zelle? Würdest Du mir das bitte zum besseren Verständnis erklären?

Danke und Gruß
Fred

__________________

VBA Neuling; Office 2016
Fips60 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.07.2017, 15:48   #5
aloys78
MOF Meister
MOF Meister
Standard

Hallo Fred,

Zitat:

Weshalb aber einmal Cells und einmal Zelle ?

Weil das 2 verschiedene „Dinge“ sind.

Cells ist ein VBA-Objekt zur Beschreibung einer Zelle mit den Koordinaten Zeile und Spalte, zB Cells(3, 4) oder etwas anders geschrieben Cells(3 ,"D“) für die Zelle D3.

Zelle ist eine von Dir definierte Variable vom Typ Range; diese hättest Du auch anders, zB Fips nennen können.

Die For-Anweisung lautet eigentlich
Code:

For each Zelle in Bereich.Cells
Weil es sich um einen 1-Spaltenbereich handelt, ändert sich in jedem Schleifendurchlauf nur die Zeile. Zelle steht dann als Variable für die aktuelle Range bzw Cells, deren Zeilen# Du nicht kennst, aber mit Zelle.Row ermitteln kannst.

Den zu umrahmenden Zeilenbereich kannst Du dann verschieden adressieren, zB
Range(Cells(Zelle.Row, "A"), Cells(Zelle.Row, "E"))
oder
Range(A” & Zelle.Row & “:E” & Zelle.Row)

Gruß
Aloys
aloys78 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 19.07.2017, 18:08   #6
Fips60
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Wieder was gelernt

Danke Aloys

__________________

VBA Neuling; Office 2016
Fips60 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:41 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.