Een waarde uit een "nieuw blad" kopieren naar een verzamelblad

  • Onderwerp starter Onderwerp starter Ibok
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Ibok

Gebruiker
Lid geworden
29 sep 2010
Berichten
35
Beste,

Ik probeer via een vba code, de waarde uit cel f13 van een zojuist aangemaakt blad, te kopieren in een verzamelblad. Nu is dat niet zo'n probleem wanneer de waarde bijvoorbeeld standaard in cel r11 moet komen van het verzamelblad. Echter de waarde moet geplaatst worden achter de persoon, waarvan het blad zojuist is aangemaakt.

Bijvoorbeeld: Ik maak (via een macro) een blad aan met de naam BSD. In dezelfde macro moet opgenomen worden dat in het werkblad "parameters" gezocht gaat worden naar "BSD" en dat in kolom R van de rij waar BSD gevonden is, de waarde geplaatst wordt die staat in het werkblad bsd, cel f13.

De code die ik tot nu toe heb:
Code:
Sub Blad_toevoegen_1()
    
    Sheets("Blanco_normjaartaak").Visible = True
    Sheets("Blanco_normjaartaak").Select
    ActiveSheet.Unprotect ("iiiBok1809")
    ActiveSheet.Copy After:=Sheets("WTFverzamel")
    Sheets("Blanco_normjaartaak").Visible = False

'Dim Naam As String

Dim Naam As Variant
showInputBox:
Naam = Application.InputBox("Voer de afkorting van de docent in of klik op annuleren om terug te keren naar het normjaartaak overzicht.")
If Naam = False Then
Application.DisplayAlerts = False
Sheets("Blanco_normjaartaak (2)").Delete
Application.DisplayAlerts = True
Sheets("WTFverzamel").Select
MsgBox "U heeft op annuleren gedrukt. U keert nu terug naar het normaartaakoverzicht.", 64, "Johan zegt:"
Exit Sub
ElseIf Naam = "" Then
MsgBox "Er is geen afkorting ingevoerd. U keert terug naar het invoerveld.", 48, "Johan zegt:"
GoTo showInputBox
End If

For J = 1 To Sheets.Count
If Sheets(J).Name = Naam Then GoTo Fout
Next
       ActiveSheet.Name = Naam
       ActiveSheet.Unprotect ("iiiBok1809")
       ActiveSheet.Range("B3") = Naam
       MsgBox ("De normjaartaak voor """ & Naam & """ is succesvol aangemaakt!")
       ActiveSheet.Protect ("iiiBok1809"), DrawingObjects:=True, Contents:=True, Scenarios:=True
'Sheets.Range("R11") = "=" & Naam & "!F13"
       Sheets("parameters").Visible = True
'Sheets("parameters").Range.FormulaR1C1 = "=" & Naam & "!F13"
       Sheets("parameters").Visible = False
       Exit Sub
     
Fout: Application.DisplayAlerts = False
Sheets("Blanco_normjaartaak (2)").Delete
Application.DisplayAlerts = True
Sheets("WTFverzamel").Select
MsgBox ("De normjaartaak is al aangemaakt voor """ & Naam & """. Controleer uw invoer of zoek """ & Naam & """ op in de lijst.")
End Sub

Alvast bedankt
 
Yow, Ibok !

Het is mij niet 100% duidelijk wat je wil, maar ik heb toch een poging gedaan.
Als je in de cell F13 van een sheet in het bestand in bijlage de waarde aanpast, wordt de nieuwe waarde gekopieerd naar het verzamelblad in de kolom B naast de naam van de sheet van waaruit de waarde komt. Ik heb kolom B genomen omdat kolom R naast m'n scherm valt, maar je kan de macro gemakkelijk aanpassen.

Ik weet niet of het dat is wat je zoekt, maar misschien kan je er op verder bouwen.

Grtz,
MDN111.
 

Bijlagen

Hey MDN111 !

Dit is inderdaad wat ik bedoel! Ik heb het reeds verwerkt en het werkt prima. Toch nog een kleine aanvullende vraag: als ik een blad verwijder, blijft op het verzamelblad de waarde uit cel f13 staan. Het is voor mij niet echt een probleem, maar is het mogelijk om dit met het verwijderen van een blad ook weer weg te krijgen?

In ieder geval heel erg bedankt

 ibok
 
Hoi Ibok,

Die vraag was een beetje tricky, want een Worksheet_delete event bestaat er niet. Maar na een beetje opzoekwerk kwam dat redelijk snel in orde.

Aangepaste versie bijgevoegd.

Grtz,
MDN111.
 

Bijlagen

Hoi MDN111,

Helemaal super :thumb:, het werkt perfect!

Ik heb nog een kleine aanpassing doorgevoerd, omdat ik alleen de eerder ingevoerde waarde wil verwijderen en niet de hele rij (er staan namelijk verschillende verwijzingen in de rij). Ik heb hiervoor de code:

ThisWorkbook.Sheets("Verzamelblad").Rows(nRow).Delete

aangepast naar

ThisWorkbook.Sheets("Verzamelblad").Rows(nRow).Cells(1, 2).Value = ""

nogmaals dank voor de hulp!

Gr. iBok
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan