• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

tellen binnen een macro

Status
Niet open voor verdere reacties.

Willem Blaas

Gebruiker
Lid geworden
30 aug 2006
Berichten
253
goede morgen

vorige hulp was perfect,
nu wil ik mbv countif laten tellen hoeveel van iets er is, (dat iets veranderd steeds) de formule klopt tot aan de variabele waar countif mee moet werken , in het voorbeeld STRVERZAMEL
moet de variabele tussen een speciaal teken staan of..............?

Sheets("verzamel").Select
Dim strverzamel As String
Range("B1").Select
strverzamel = activecell

Range("D1").Select
activecell.FormulaR1C1 = "=COUNTIF(RC[-2]:R[1399]C[-2], strverzamel )"

wanneer ik strverzamel = activecell omdraai (dus strverzamel na het = teken) en ik kom op B1 wordt de cell leeggemaakt , wat dus niet de bedoeling is

bij voorbaat dank

willem blaas
 
Je code kan een stuk korter. Gebruik bij voorkeur geen select.

Code:
Dim strverzamel As String
strverzamel = Range("B1").Value
Range("D1").FormulaR1C1 = "=COUNTIF(RC[-2]:R[1399]C[-2]," & Chr(34) & strverzamel & Chr(34) & ")"


Het resultaat is onderstaande formule.
Code:
=AANTAL.ALS(B1:B1400;"oke")

Met vriendelijke groet,


Roncancio
 
Je code kan een stuk korter. Gebruik bij voorkeur geen select.

Code:
Dim strverzamel As String
strverzamel = Range("B1").Value
Range("D1").FormulaR1C1 = "=COUNTIF(RC[-2]:R[1399]C[-2]," & Chr(34) & strverzamel & Chr(34) & ")"


Het resultaat is onderstaande formule.
Code:
=AANTAL.ALS(B1:B1400;"oke")

Met vriendelijke groet,


Roncancio

ga ik proberen bedankt
 
Willem Blaas, Ik snap eerlijk gezegd het nut van je code niet helemaal (helemaal niet:D). Als je eenmaal je 'Aantal.Als' formule in cel D1 hebt staan, werkt dit toch gewoon? Waarom wil je die dan steeds 'updaten' met VBA???

Groet, Leo
 
Willem Blaas, Ik snap eerlijk gezegd het nut van je code niet helemaal (helemaal niet:D). Als je eenmaal je 'Aantal.Als' formule in cel D1 hebt staan, werkt dit toch gewoon? Waarom wil je die dan steeds 'updaten' met VBA???

Groet, Leo

omdat het te tellen getal steeds veranderd , zodoende , maar het is gelukt en kan hem zo steeds opnieuw in actie laten gaan
 
ga ik proberen bedankt

is dus gelukt , maar als ik nu met die strverzamel iets heb gedaan en dus naar het volgende item wil mgen alle strverzamelregels weg, dus laat ik m zoeken naar strverzamel en dat weigert die dus, het moet dus zitten in het xommande cell find zie onder

Sheets("verzamel").Select

Dim strverzamel As String
strverzamel = Range("B1").Value
Range("D1").FormulaR1C1 = "=COUNTIF(RC[-2]:R[1399]C[-2]," & Chr(34) & strverzamel & Chr(34) & ")"

Sheets("verzamel").Select
Range("A1:D1").Select
Selection.Copy
Sheets("verzamel01").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select



Sheets("verzamel").Select
Range("A1").Select
Cells.Find(What:=" & Chr(34) & strverzamel & Chr(34) & ", After:=activecell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False).Activate

Range("B1").Select
Application.CutCopyMode = False
Selection.EntireRow.Delete


mss moet bij ceels find iets anders staan, wie weet
 
Ik heb een macro gemaakt die wat korter is.

Code:
Sub verwijderen()
Dim lRij As Long
Dim lSrij As Long

    lRij = ActiveSheet.Range("B65536").End(xlUp).Row
    For lSrij = lRij To 2 Step -1
        If Range("B" & lSrij).Value = Range("D1").Value Then
           Range("B" & lSrij).EntireRow.Delete
        End If
    Next
End Sub
De macro verwijdert alle regels waarvan de waarde in de B-kolom overeenkomst met de waarde in cel D1.

Met vriendelijke groet,


Roncancio
 
Ik heb een macro gemaakt die wat korter is.

Code:
Sub verwijderen()
Dim lRij As Long
Dim lSrij As Long

    lRij = ActiveSheet.Range("B65536").End(xlUp).Row
    For lSrij = lRij To 2 Step -1
        If Range("B" & lSrij).Value = Range("D1").Value Then
           Range("B" & lSrij).EntireRow.Delete
        End If
    Next
End Sub
De macro verwijdert alle regels waarvan de waarde in de B-kolom overeenkomst met de waarde in cel D1.

ziet er mooi uit (alhoewel ik als goedwillende amateur hem niet (helemaal) begrijp ) maar hij loopt wel maar haalt niets weg
opmerking : als hij de eerste regel waar in dit geval 0320 staat weghaalt is de D1 ook weg , heeft die daar geen last van ?

Sub verz03()
'
' verz03 Macro
' De macro is opgenomen op 31-7-2008 door willem blaas.

Sheets("verzamel").Select

Dim strverzamel As String
strverzamel = Range("B1").Value
Range("D1").FormulaR1C1 = "=COUNTIF(RC[-2]:R[1399]C[-2]," & Chr(34) & strverzamel & Chr(34) & ")"

Sheets("verzamel").Select
Range("A1:D1").Select
Selection.Copy
Sheets("verzamel01").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("A1").Select

Sheets("verzamel").Select
Range("D1").Select
''===================================
Dim lRij As Long
Dim lSrij As Long

lRij = ActiveSheet.Range("B65536").End(xlUp).Row
For lSrij = lRij To 2 Step -1
If Range("B" & lSrij).Value = Range("D1").Value Then
Range("B" & lSrij).EntireRow.Delete
End If
Next

''======================================
'' hij loopt dus netjes naar next en dan gaat ie weer terug naar if range...

End Sub

Met vriendelijke groet,


Roncancio
 
@Willem Blaas
In je laatste reactie stond verder geen tekst.
Het is dus niet bekend of er aanvullende vragen zijn.

Met vriendelijke groet,


Roncancio
 
@Willem Blaas
In je laatste reactie stond verder geen tekst.
Het is dus niet bekend of er aanvullende vragen zijn.

Met vriendelijke groet,


Roncancio
de tekst die erbij heb gezet is wel te zien, hij deed het niet maar heb er wel wat op gevondenzodat hij loopt, alleen wanneer ik nu regels laat weghalen en op een gegeven moment er een ander strverzamel aan de beurt is doet ie het 2 keer goed en dan roept die fout 91 , iets over een blokvariabele niet ingesteld
 
de tekst die erbij heb gezet is wel te zien, hij deed het niet maar heb er wel wat op gevondenzodat hij loopt, alleen wanneer ik nu regels laat weghalen en op een gegeven moment er een ander strverzamel aan de beurt is doet ie het 2 keer goed en dan roept die fout 91 , iets over een blokvariabele niet ingesteld

:shocked::shocked::shocked:
Bij mij blijft de macro werken. Ook na 2, 3, 5, 10 keer. Ik ben benieuwd wat je heb gedaan/aangepast.

Met vriendelijke groet,


Roncancio
 
de tekst die erbij heb gezet is wel te zien, hij deed het niet maar heb er wel wat op gevondenzodat hij loopt, alleen wanneer ik nu regels laat weghalen en op een gegeven moment er een ander strverzamel aan de beurt is doet ie het 2 keer goed en dan roept die fout 91 , iets over een blokvariabele niet ingesteld

als ik iets wil vinden en het is er niet meer en ik wil hem daarop iet laten doen met bv
if not find then goto , is dat de goede of moet er iets anders staan

heb ook al geprobeerd on error maar gaat niet goed

is hier nog iets anders voor ?
 
als ik iets wil vinden en het is er niet meer en ik wil hem daarop iet laten doen met bv
if not find then goto , is dat de goede of moet er iets anders staan

heb ook al geprobeerd on error maar gaat niet goed

is hier nog iets anders voor ?

Sub verzamel()
'
' verz03 Macro
' De macro is opgenomen op 31-7-2008 door willem blaas.

Sheets("verzamel").Select
opnieuw:

Dim strverzamel As String
strverzamel = Range("B2").Value
Range("D2").FormulaR1C1 = "=COUNTIF(RC[-2]:R[1399]C[-2]," & Chr(34) & strverzamel & Chr(34) & ")"

Range("A2:D2").Select
Selection.Copy
Sheets("verzamel01").Select
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Rows("1:1").Select
Application.CutCopyMode = False
Selection.Insert Shift:=xlDown
Range("A1").Select



Sheets("verzamel").Select
Range("D2").Select

''============================================

Dim strgetal As String
Range("B2").Select
strgetal = Range("B2").Value
Range("B1").Select

begin:

''On Error GoTo opnieuw


Columns("B:B").Select
Selection.Find(What:=(strgetal), After:=activecell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
If Not Find Then GoTo opnieuw

activecell.Select



Selection.EntireRow.Delete
GoTo begin



End Sub
 
Waarom gebruik je nog die code als ik een pasklare oplossing heb gegeven?:confused::confused::shocked:
Als je aangeeft wat je doel is van de code kan de macro worden aangepast. Dat is beter dan eindeloos te recorden.:cool:;)

Mijn code zoekt in de B-kolom de waarde van cel D1 en verwijdert de regels waarvan in de B-kolom die waarde staat.

Met vriendelijke groet,


Roncancio
 
Waarom gebruik je nog die code als ik een pasklare oplossing heb gegeven?:confused::confused::shocked:
Als je aangeeft wat je doel is van de code kan de macro worden aangepast. Dat is beter dan eindeloos te recorden.:cool:;)

Mijn code zoekt in de B-kolom de waarde van cel D1 en verwijdert de regels waarvan in de B-kolom die waarde staat.

Met vriendelijke groet,


Roncancio

sorry, maar we gaan in een babylonische spraakverwarring, ik had al geschreven dat je aanbod eerst niet werkte maar , later er iets op gevonden maar liep op iets anders vast
wat ik wil is :

zet in cel d1 het aantal malen dat 1150 voorkomt
kopieer a1 t\m d1 naar een ander sheet
verwijder alle regels met daarin de code 1150
en begin opnieuw met
zet in cel d1 het aantal malen dat 1200 voorkomt
ect ect

A B C D
polsterduse bursteineinsatz 1150
polsterduse bursteineinsatz 1150
polsterduse bursteineinsatz 1150
polsterduse bursteineinsatz 1150
polsterduse bursteineinsatz 1150
polsterduse bursteineinsatz 1150
polsterduse bursteineinsatz 1150
polsterduse bursteineinsatz 1150
fugenduse 1200
fugenduse 1200
fugenduse 1200
fugenduse 1200
fugenduse 1200
fugenduse 1200
fugenduse 1200
fugenduse 1200
reinigungsburste fur separator 1220
reinigungsburste fur separator 1220
reinigungsburste fur separator 1220

zodat ik dus een verzamellijst krijg met hoe vaak van ieder aanwezig is

sorry dus, oke ?

hij zet het niet netjes neer maar had geprobeerd de zaak hier uit te lijnen voor het overzicht
 
Laatst bewerkt:
Oké, geen probleem. Even goede vrienden.:cool::cool:

Het beste wat je kan doen is een draaitabel. Die doet namelijke alle handelingen voor je.
- Selecteer het bereik.
- Ga naar DATA - DRAAITABEL- EN DRAAIGRAFIEKRAPPORT
- Klik op Volgende
- Klik nogmaals op Volgende
- Kies eventueel voor nieuw werkblad.
- Sleep de naam van de data in Rijnummer
- Sleep de naam van de data in Gegevensitems

Je krijgt automatisch een overzicht van de gegevens en het aantal per gegeven.
Dus zoiets:

fugenduse 8
polsterduse 8
reinigungsburste 3
(leeg)
Eindtotaal 19

Het ontbreekt mij nu de tijd om het eea uit te werken maar ik denk later vandaag (indien gewenst) wel een voorbeeld te kunnen sturen.
Stuur eventueel het bestand op als het niet lukt.
Je hebt dus geen VBA nodig.

Met vriendelijke groet,


Roncancio
 
Oké, geen probleem. Even goede vrienden.:cool::cool:

Het beste wat je kan doen is een draaitabel. Die doet namelijke alle handelingen voor je.
- Selecteer het bereik.
- Ga naar DATA - DRAAITABEL- EN DRAAIGRAFIEKRAPPORT
- Klik op Volgende
- Klik nogmaals op Volgende
- Kies eventueel voor nieuw werkblad.
- Sleep de naam van de data in Rijnummer
- Sleep de naam van de data in Gegevensitems

Je krijgt automatisch een overzicht van de gegevens en het aantal per gegeven.
Dus zoiets:

fugenduse 8
polsterduse 8
reinigungsburste 3
(leeg)
Eindtotaal 19

Het ontbreekt mij nu de tijd om het eea uit te werken maar ik denk later vandaag (indien gewenst) wel een voorbeeld te kunnen sturen.
Stuur eventueel het bestand op als het niet lukt.
Je hebt dus geen VBA nodig.

Met vriendelijke groet,


Roncancio

ga ik proberen bedankt, je hoort in ieder geval nog
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan