• 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.

Stooklijst

Gijsbert1960

Gebruiker
Lid geworden
5 jul 2017
Berichten
145
Hallo Allen

Ik ben bezig om een variabel bereik naar ander blad te kopieren zonder lege cellen waar wel een formule in staat in Excel 365.
Maar loop vast op de regel "If Not RangeIsEmpty(Selection) Then" tijdens test. Ik heb deze code uit een ander bestand waar hij wel werkt maar door aanpassing hier niet en foutmelding geeft Sub of Function is niet gedefineerd. De rest van de code staaat op blad Stoken dat is om naar ander blad te zetten. Ik weet dus door vastlopen niet of hij de regels met formule wel of niet meeneemt en weet te weinig van VBA om er uit te komen, dus alle hulp is welkom. Ook staat de formule in module1

Code:
With ActiveSheet
    Dim col As Integer
    Dim myrange As Range
    For col = 14 To 23
            Range(Cells(77, 14), Cells(91,23)).Select
                If Not RangeIsEmpty(Selection) Then
                    Selection.SpecialCells(xlCellTypeConstants,10).Copy

M vr gr
Gijs
 

Bijlagen

Die RangeIsEmpty is geen standaard Excel VBA function en zal je in z'n geheel uit dat andere document moeten kopiëren.
Die huidige code kan ook een heel stuk eenvoudiger.
 
Laatst bewerkt:
Hallo Edmoor

Heb die opgezocht en onderaan stond nog
Code:
Function RangeIsEmpty(ByVal SourceRange As Range) As Boolean
  RangeIsEmpty = (WorksheetFunction.CountA(SourceRange) = 0)
End Function
Denk dat hij daardoor wel werkteop het gevonden bestand.

Ik heb nu de formule aangepast naar het volgende
Code:
Sub GevuldeCellen()
    Dim col As Integer
    Dim myrange As Range
    For col = 14 To 23
    Next
        Range(Cells(77, 14), Cells(91, 23)).Select
            Selection.SpecialCells(xlCellTypeConstants, 10).Copy
Maar krijg op "Selection.SpecialCells(xlCellTypeConstants,10).Copy" de melding geen cellen gevonden en begrijp niet uit waarom, dat de code eenvoudiger kan zal wel maar heb er niet veel kaas van gegeten dus als iets werkt ben ik al blij.

M vr gr
Gijs
 
End With zonder With, Blad1 bestaat niet, een For-loop over col die je nergens in die For-loop gebruikt, myrange wordt niet gebruikt, kortom, er klopt niet veel van.
Leg eens uit wat er moet gebeuren.
 
En die hele If..Then..Else constructie kan worden vervangen door 1 Select Case statement.
 
Laatst bewerkt:
PHP:
=IF(B36="";"";IF(AND(AND(B37>=0);(B39>=1));$L$13;$L$14))
De ze dubbele 'AND' formule is ook overbodig kan ook zo:

PHP:
=IF(B36="";"";IF(AND(B37>=0;B39>=1);$L$13;$L$14))
 
Hallo Ahulpje en Edmoor

Wat ik wil is dat de gevulde cellen in bereik N77:W91 indien ingevuld verplaatst worden naar blad verbruik zonder de lege cellen waar wel een formule instaat op maand die in kolom L gevonden wordt zoals nu de 9 voor September. With en End With heb ik al weg gehaald maar weet niet om de selectie te maken "Selection.SpecialCells(xlCellTypeConstants, 10).Copy" om te bepalen waar het gekopieerd moet worden. En Edmoor mijn kennis van VBA is beperkt dus weet niet hoe je een 1 Select Case statement. moet maken dus heb het op deze manier gedaan.

M vr gr
Gijs
 
Probeer het hier eens mee (ietsje korter):
Code:
Sub Verbruik()
    Dim rng As Range
    
    Sheets("Stoken").Range("N77:W91").Copy
    Set rng = Sheets("verbruik").Columns("A:A").Find(What:=MonthName(Sheets("Stoken").Range("L77")), MatchCase:=False, SearchFormat:=False)
    Sheets("verbruik").Cells(rng.Row + 2, 1).PasteSpecial Paste:=xlPasteValues
End Sub
 
Hallo Peter59

Nee dit komt niet in de buurt daar blad verbruik in takt moet blijven voor kantoor
Bericht automatisch samengevoegd:

Beste Ahulpje

Dit is het bijna alleen nu worden de lege cellen waar wel een formule in staat mee gekopieerd en dat is niet de bedoeling. Ook het aantal ingevulde regels veranderd geregeld.
Maar hij zet het wel goed op de maand weg, maar als de maand bijna vol is verwijderd hij een deel van de volgende maand. We kijken wel hoveel vrije regels er nog zijn en voegen dan er bij maar anderen die er mee werken kijken hier niet naar en ben daarom bezig in het orginele bestand het aantal lege regels te tellen en dan vie de knop die ik voor de module gebruik wel of niet te laten werken.

M vr gr
Gijs
 
Laatst bewerkt:
Wordt e.e.a. meerdere keren per maand uitgevoerd? Dus als er al gegevens onder de betreffende maand staan moeten de huidige gegevens van blad Stoken onderaan worden toegevoegd?
En als er niet genoeg lege rijen voor de betreffende maand op werkblad verbruik aanwezig zijn dan moeten er rijen tussengevoegd worden? Is het dan niet veel handiger om met een leeg werkblad verbruik te beginnen en bij iedere nieuwe maand de twee kopregels (via de macro) toe te voegen?
En eigenlijk is de kopregel met de maandvermelding helemaal niet nodig, als je een kolom met maandnummer of naam opneemt op werkblad verbruik kun je naar hartenlust filteren op maand.
 
Beste Ahulpje

Zoals nu weet men niet waar de lading gelost gaat worden maar moeten we hem wel op tempratuur houden dus komt het eigenlijk nooit voor maar bij meerdere ladingen en de lege regels meenemen heb je wel de kans dat zoals nu de regel oktober wel gewist wordt als er bv nog 13 regels in verbruik leeg zijn. Daarom wilde ik graag dat lege regels niet meegenomen worden. Wel moeten we verbruik zo laten en elke maand mailen. Of zoals U voorsteld een leeg werkblad die aan het eid van de maand onder de laatste maand van jaarblad te zetten en de regel waar de maand in staat met leeg werkblad te beginnen met de nieuwe maand. maar weet niet hoe dat te doen met mijn weiinige kennis.

M vr gr
Gijs
 
Terug
Bovenaan Onderaan