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

Sheet openen met opdracht uit cel

Status
Niet open voor verdere reacties.

Bertus78

Gebruiker
Lid geworden
17 aug 2017
Berichten
209
Beste helper,

Ik wil wat opslaan in verschillende sheets.
In sheet Invoer komt in cel D18 komt dan te staan welke sheet de gegevens moeten opgeslagen.
In die sheet moet hij de gegevens opslaan uit cel C9.

Nu zit ik met de volgende zin te knoeien.
Code:
  Sheets("D18").Range("I65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues

Normaal gesproken begin je met "Sheet ("naam").Range enz enz.
Maar bij naam moet cel staan.
Maar dat doet hij niet.

Het ziet er zo totaal uit.

Code:
Sheets("invoer GTM").Range("A34").Copy
    Sheets("D18").Range("I65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Range("C9").Select
    Selection = ""

Wie ziet wat ik fout doe.
 
Hij kijkt nu naar een sheet met de naam D18, die is er dus niet.
Maak er dit van:
Sheets(Range("D18"))
 
Ik heb het volgende gedaan

Code:
   Sheets("invoer GTM").Range("c15").Copy
    Sheets(Range("D18")).Range("b65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False

Maar krijg bij betreffende zin een foutmelding.
Type komt niet overeen.
Dat in betreffende cel een 4 komt te staan en de sheet heet ook 4.
Dus dit moet goed overeenkomen.
 
Range("D18").value misschien?
 
Kennelijk moet daar de .Value nog bij.
Vervang die 3 regels eens door dit:
Code:
Sheets(Range("D18").Value).Range("B65536").End(xlUp).Offset(1, 0) = Sheets("invoer GTM").Range("C15")

Edit:
Juist SjonR :)
 
Laatst bewerkt:
Fout 9 zegt dat 'ie een verwijzing niet kan vinden. Verder staat er nog ergens Sheet in plaats van Sheets. Dat levert een compiler error op.
 
Laatst bewerkt:
Code:
Private Sub Image1_Click()
'opslaan
 'selecteer en plak
 
 For Each cell In Range("C9")
 If IsEmpty(cell) Then
 MsgBox "Oeps, geen correcte code ingevuld": Exit Sub
 Exit For
 End If
 Next
 
      
    Sheets("invoer GTM").Range("C10").Copy
    Sheets("GTM_rekening").Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("c15").Copy
    Sheets("GTM_rekening").Range("b65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C16").Copy
    Sheets("GTM_rekening").Range("c65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C17").Copy
    Sheets("GTM_rekening").Range("d65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C19").Copy
    Sheets("GTM_rekening").Range("E65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C12").Copy
    Sheets("GTM_rekening").Range("F65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C13").Copy
    Sheets("GTM_rekening").Range("G65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("A34").Copy
    Sheets("GTM_rekening").Range("I65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("A34").Copy
    Sheets(Range("D18")).Range("I65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Range("C9").Select
    Selection = ""
    
    Sheets("invoer GTM").Range("c15").Copy
    Sheets(Range("D18")).Range("b65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
End Sub
 
Je werkt met nummers als werkbladnaam. Die moet je dan converteren naar een string:
Code:
Sheets(Cstr(Sheets("invoer GTM").Range("D18").Value)).Range("B65536").End(xlUp).Offset(1, 0) = Sheets("invoer_GTM").Range("C15")
 
Ik heb nu ook geprobeerd met sheets een andere naam te geven zoals I1
Maar dat werkt ook niet
 
Dat komt omdat je = Sheets("invoer_GTM") hebt staan.
Die _ hoort er niet in.

Dus:
Code:
Sheets(Cstr(Sheets("invoer GTM").Range("D18").Value)).Range("B65536").End(xlUp).Offset(1, 0) = Sheets("Invoer GTM").Range("C15")

Wees ook consequent in het gebruik van hoofd- en kleine letters.
 
Laatst bewerkt:
Begin eerst eens met

Code:
    sn=Sheets("invoer GTM").Range("C10:C19")
    Sheets("GTM_rekening").cells(rows.count,1).End(xlUp).Offset(1).resize(,8)=array(sn(1,1),sn(1,5),sn(1,6),sn(1,7),sn(1,9),sn(1,2),sn(1,3),Sheets("invoer GTM").cells(43,1))

ter vervanging van:
Code:
Sheets("invoer GTM").Range("C10").Copy
    Sheets("GTM_rekening").Range("a65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("c15").Copy
    Sheets("GTM_rekening").Range("b65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C16").Copy
    Sheets("GTM_rekening").Range("c65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C17").Copy
    Sheets("GTM_rekening").Range("d65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C19").Copy
    Sheets("GTM_rekening").Range("E65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C12").Copy
    Sheets("GTM_rekening").Range("F65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("C13").Copy
    Sheets("GTM_rekening").Range("G65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    
    Sheets("invoer GTM").Range("A34").Copy
    Sheets("GTM_rekening").Range("I65536").End(xlUp).Offset(1, 0).PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
 
Voor nu alvast bedankt,

Ik ga er morgen even verder naar kijken wat ik fout doe.

Nogmaals bedankt voor zover.

:thumb:
 
Voor de fout, zie #14.
Voor de rest, zeker doen wat snb in #15 zegt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan