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

fout 1004 tijdens verplaatsen data tussen 2 sheets

Status
Niet open voor verdere reacties.

willie76

Gebruiker
Lid geworden
6 nov 2010
Berichten
124
forumleden,

Ik heb op blad 1 (data) een kolom data staan, waarvan ik een aantal cellen naar blad 2 (database) wil kopieren.
Dit wil ik doen door via een knop op het userform te klikken.
Hierbij moet de nieuwe data altijd op de volgende regel komen te staan.

Zelf dacht ik aan de code:
Code:
Private Sub CommandButton1_Click()
    With Sheets("Database")
     .Cells(Rows.Count, 1).End(x1Up).Offset(1).Resize(, 23).Value = WorksheetFunction.Transpose(Sheets("Data").Range("B1,B2,B4,B5,B7,B8,B11,B12,B16,B17,B18,B19,B20,B23,B24,B25,B26,B27,B33,B34,B35,B36,B37"))
     End With
End Sub

...maar dan krijg ik de foutmelding terug:

1004: eigenschap transpose van klasse workfunction kan niet worden opgehaald.

Wie weet er een oplossing ???
 
Willie,

bv.
Code:
Private Sub CommandButton1_Click()
With Sheets("Data")
   Sheets("Database").Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 4) = Array(.Range("B1"), .Range("B2"), .Range("B4"), .Range("B5"))
 End With
End Sub
 
of

Code:
Private Sub CommandButton1_Click()
    With Sheets("Database")
    For Each cl In Sheets("Data").Range("B1,B2,B4,B5,B7,B8,B11,B12,B16,B17,B18,B19,B20,B23,B24,B25,B26,B27,B33,B34,B35,B36,B37")
     c01 = c01 & "|" & cl.Value
     Next
     .Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 23).Value = Split(Mid(c01, 2), "|")
     End With
End Sub

Niels
 
Hallo Niels en andere forummers

Op zich werkt die formule prima, maar ik heb nog 1 dingetje daarbij:

Als het getal 1 wordt weergegeven dan zou ik eigenlijk willen zien dat ie die cel open zou laten.

Met mijn beperkte VBA-kennis dacht ik aan een functie in de trend van:

Code:
Private Sub Number1()
Dim c As Control

For Each c In Me.Controls
Select Case TypeName(c)

If c.Value = "1" Then ""

End Select
Next
End Sub

...maar deze code werkt niet zoals ik zou willen.
Wat doe ik fout ????

Thx alvast
 
Code:
Private Sub CommandButton1_Click()
    With Sheets("Database")
    For Each cl In Sheets("Data").Range("B1,B2,B4,B5,B7,B8,B11,B12,B16,B17,B18,B19,B20,B23,B24,B25,B26,B27,B33,B34,B35,B36,B37")
     c01 = c01 & "|" & IIf(cl.Value = 1, vbNullString, cl.Value)
     Next
     .Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 23).Value = Split(Mid(c01, 2), "|")
     End With
End Sub
 
Hallo Rudi,

Allereerst dank voor je reactie, maar de oplossing is precies het tegenovergestelde van wat ik bedoelde.
Alle waarden wara 1 in het formulier staat geeft ie nu als 0 in het database-blad weer en alle waarden > of < 1 geeft ie NIET weer in het blad.
Tevens worden de 0'en ook (nog steeds) opgeslagen als tekst en niet als getal.........

Ik heb de formule van Niels maar weer terug gezet.
Weet jij of iemand anders nog een oplossing ???
 
Post je bestand met 'Userform' eens op het forum, want je spreekt wel over een Userform maar dan ben je weer bezig met een reeks bereiken te kopieëren en in je laatste post spreek je weer over Me.Controls.
Ik ben het even kwijt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan