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

Leeg is niet leeg

Status
Niet open voor verdere reacties.
Jij bent ook niet snel tevreden....

Code:
Sub M_snb()
  sn = Filter([transpose(if(K4:K10="","~",K4:K10))], "~", 0)
  Blad1.Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)
End Sub
 
Nee ik bedoelde jouw code Marcel.

Trouwens de code van snb werkt ook prima en daar snap ik ook niets van.
Hoge school programmering hoor.

jaap
 
Met toelichting:
Code:
Sub GetallenNaarB3()
    Dim inp 'array variabele
    Dim t1%, t2% '% is verkorte notatie voor: As Integer
    inp = Range("K4:K10") 'De hele inhoud van K4:K10 wordt in array variabele inp gezet.
    For t1 = 1 To 7 'Programmalus over de waarden in inp
        If inp(t1, 1) <> "" Then 'Als er een waarde is in element(t1, 1) van inp:
            Range("B3").Offset(t2, 0).Value = inp(t1, 1) 'zet de waarde in cel B3 plus zoveel regels lager als t2 aangeeft; t2 begint op 0.
            t2 = t2 + 1 'verhoog t2 met 1
        End If
    Next t1
End Sub
 
Ik ga het eens op mijn gemak bestuderen.

Marcel Beug en snb goed gedaan mannen.
Ik ben helemaal tevreden en ga de vraag op opgelost zetten.

Vriendelijke groet , Jaap
 
snb,

Als ik deze code laat uitvoeren na een If Then regel , dan werkt hij niet.
Klopt dat , en wat is dan de oplossing
Jaap
 
snb , bedankt voor je geduld , kan me zo voorstellen da je dat af en toe wel nodig heb.

Het is van toepassing op een eerdere bijlage.

Na de eerste keer is B3 bezet en moet bij de volgende uitvoering van de macro
de gehele range K4:K10 aansluitend in kolom B komen.

If Range("B3") = "" Then
sn = Filter([transpose(if(K4:K10="","~",K4:K10))], "~", 0)
Blad1.Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)
Else
Range("K4:K10").Copy
Range("B30").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
End If
End Sub
 
Gebruik svp code tags !

Ik begrijp niet waarom je dit doet, maar het kan zo:

Code:
If Range("B3") = "" Then
  sn = Filter([transpose(if(K4:K10="","~",K4:K10))], "~", 0)
  Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)
Else
  cells(rows.count,2).End(xlUp).Offset(1).resize(,7)=Range("K4:K10").Value
End If
 
snb ,

Dat was het. code werkt goed. zie de bijlage!
Alleen het rare is dat het niet werkt in mijn hoofdprogramma. Exel 97-2003 .xls bestand

Marcel ,
Jou code werkt in de bijlage niet goed. doet het maar een keer en als B3 niet leeg is kopieerd
hij niet K4:K10. zie ook de bijlage



Bekijk bijlage Variabel selecteren 2.xlsm
 
Toch is dit voldoende:

Code:
  sn = Filter([transpose(if(K4:K10="","~",K4:K10))], "~", 0)
  Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)

K4:K10 moet in hetzelfde werkblad staan als B3

Je moet deze code wel in de codemodule van het werkblad met de gegevens (K4:K10) zetten.
 
Laatst bewerkt:
snb ,

K4:K10 en B3 staan inderdaad in het zelfde werkblad
maar wat bedoel je met "de code moet wel in de code module van het betreffende werkblad staan"?
Ik heb hem ingepast in een totale macro welke geactiveerd is voor de gehele werkmap.


Marcel , jou code werkt wel goed nadat ik de macro opnieuw aan de knop had toegewezen
Sorry
 
Hoe heet het werkblad met de waarden van K4:K10 ?
 
snb,

Hij heet Dagomzetten!

en wat betreft onderstaande code als End(xlUp) count,2 , vanaf rij 360 moet zoeken?

Else
cells(rows.count,2).End(xlUp).Offset(1).resize(,7)=Range("K4:K10").Value

Jaap
 
Code:
sn = Filter([transpose(if(dagomzetten!K4:K10="","~",dagomzetten!K4:K10))], "~", 0)
sheets("dagomzetten").Cells(Rows.Count, 2).End(xlUp).Offset(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)
 
en wat betreft onderstaande code als End(xlUp) count,2 , vanaf rij 360 moet zoeken?

Dan heb je wat mij betreft gezondigd tegen een verstandige opbouw van het werkblad.
Maar zoals ik eerder aangaf is die 'if...else...end if' -constructie overbodig.
 
Laatst bewerkt:
Ja , je heb gelijk.
Ik ben er bijna en de code werkt. Nu alleen nog .End(xlUp). Dit moet vanaf regel B370 omdat daar
het totaal staat van alle dagen en hij , de code , het daar dan onder zet.

Ik heb onderstaand geprobeerd maar dat werkt niet.

sheets("dagomzetten").Cells(Rows.Count, 2).Range("B370").End(xlUp).Offset(1).Resize(UBound(sn) + 1) = Application.Transpose(sn)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan