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 17.10.2017, 13:03   #1
karl1988
Neuer Benutzer
Neuer Benutzer
Standard VBA - FormulaR1C1 mit dynamischen Variablen

Hallo zusammen

Ich hab ein kleines Problem:
Code:

Range("I2").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(R2C3:R5000C3,RC[-6])"
Hab eine Zählewenn Funktion in meinem VBA-Code und würde gerne den Bereich dynamisch halten. Dafür ermittelte ich die letzte Zelle:
Code:

    
LastCellSx = ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row
Das funktioniert auch, aber ich kann die Variable nicht in mein:
ActiveCell.FormulaR1C1 = "=COUNTIF(R2C3:R5000C3,RC[-6])"
einbauen.

Hab es mit:
COUNTIF(R2C3:R &LastCellSx&C3,RC[-6])
versucht, aber leider klappt es nicht. Wäre super wenn Ihr mir helfen könntet. Danke.

Das funktioniert aber:
Code:

    
Range("I2").Select
Selection.AutoFill Destination:=Range("I2:I" & LastCellSx&)

Sonnige Grüsse aus der Schweiz

Geändert von karl1988 (17.10.2017 um 13:08 Uhr).
karl1988 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.10.2017, 14:21   #2
Beverly
MOF Guru
MOF Guru
Standard

Hi,

weshalb arbeitest du mit .FormulaR1C1? Einfacher ist es doch, wenn du .Formula verwendest, dann kannst du die Zelladressen ganz normal in der Range/Cells-Schreibweise benutzen.


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.10.2017, 16:42   #3
karl1988
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

@Beverly

Erstmal danke für die Antwort. Ich wüsste beim "Formular" z.B. nicht, wie ich den Zellen Bereich fixieren kann (in Excel mit $), bei r1c1 aber schon. Wenn du mir da helfen könntest, würde ich natürlich Formular nutzen, muss da nicht umbedingt R1C1 nutzen. Danke
karl1988 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.10.2017, 19:55   #4
Beverly
MOF Guru
MOF Guru
Standard

Hi,

nicht .Formular sondern .Formula

Auf diesem Weg:

Code:

Dim intSpalte As Integer
Dim lngZeile As Long
intSpalte = 3
lngZeile = 2
Range("I2").Formula = "=COUNTIF($C$2:$C$5000," & Cells(lngZeile, intSpalte).Address(False, False) & ")"

GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2017, 09:46   #5
karl1988
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hi Beverly

mit deinem Befehl:
Range("I2").Formula = "=COUNTIF($C$2:$C$5000," & Cells(lngZeile, intSpalte).Address(False, False) & ")"

Hab ich den Bereich aber nicht dynamisch. Ich weiß vorab nicht, ob der Bereich bis C5000 geht (dafür ermittelt ich ja davor die letzte beschriebene Zelle). Vielleicht habe ich mich auch falsch ausgedrückt, aber ich würde gerne den ZählewennBereich dynamisch halten. Also mit C2 bis C(letzte Zelle).

Sowas zum Beispiel (funktioniert auch):
Range("A2:A" & LastCellSx&).SpecialCells(xlCellTypeVisible).EntireRow.Delete

Leider geht:
Range("I2").Formula = "=COUNTIF($C$2:$C$ & LastCellSx&, C2)"
nicht.

Oder habe ich dein Code Beispiel falsch verstanden?

LG
karl1988 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2017, 09:59   #6
hary
MOF Guru
MOF Guru
Standard

Moin
Da fehlen die Gaensepfoten;-)
"=COUNTIF($C$2:$C$" & LastCellSx & ", C2)"
gruss hary
hary ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2017, 13:14   #7
karl1988
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat: von hary Beitrag anzeigen

Moin
Da fehlen die Gaensepfoten;-)
"=COUNTIF($C$2:$C$" & LastCellSx & ", C2)"
gruss hary


Hi Hary

Danke Kleiner Fehler der mir nicht aufgefallen ist. So kann ich jetzt meine Formel dynamisch halten.

Schönen Tag noch

LG
Karl
karl1988 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 18.10.2017, 13:41   #8
Beverly
MOF Guru
MOF Guru
Standard

Mit etwas Überlegung hättest du selbst auf die folgende Lösung kommen können, denn das Prinzip der Dynamik war in meinem Code doch bereits vorgezeigt...

Code:

Dim lngLetzte As Long
lngLetzte = 5000
Range("I2").Formula = "=COUNTIF(" & Range(Cells(2, 3), Cells(lngLetzte, 3)).Address & ",C2)"

GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly 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 12: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.