Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 14 van 14

Onderwerp: Bereiknamen kopiëren naar een andere werkblad

  1. #1
    Vraag is niet opgelost

    Bereiknamen kopiëren naar een andere werkblad

    Op een onverklaarbare reden lukt het mij niet om met de originele werkblad de bereiknamen over te zetten naar een andere werkbladmiddels een VBA code. Nu vind je in de bijlage de privacy proof versies van Renovatie.xlsm en Nieuwbouw.xlsm.
    Zelf krijg ik een syntax 1004 error. Ik dacht dat het lag aan een aantal verborgen bereiknamen die beginnen met _xlfn*. Echter als ik deze verwijder of ik pas de VBA code erop aan 'If Not m Like _xlfn*' zoiets lukt het nog steeds niet en krijg ik (zo uit mijn hoofd) een 404 object error.

    Casus:
    In de bijlage vind je de bereiknaam 'KNVBRENOVATIE_OnderbouwOpLocatieIndringingsNorm' op B30 op het tabblad Onderbouw Op Locatie van Book1.xlsm en Renovatie.xlsm
    terwijl je in dezelfde cel van Nieuwbouw.xlsm de bereiknaam 'KNVBNIEUW_OnderbouwOpLocatieIndringingsNorm' leest.

    Graag wil ik dat vanuit Renovatie.xlsm de bereiknaam 'KNVBRENOVATIE_OnderbouwOpLocatieIndringingsNorm' op B30 op het tabblad Onderbouw Op Locatie in het werkblad Nieuwbouw.xlsm erbij komt.

    Zelf lukt het mij wel om de bereiknaam 'KNVBRENOVATIE_OnderbouwOpLocatieIndringingsNorm' vanuit Book1.xlsm over te zetten naar Nieuwbouw.xlsm. Maar bij Renovatie.xlsm krijg ik de hierboven beschreven errors.

    Graag begrijp ik waar in mij originele werkbladen de fout(en) is/staan.

    Hopelijk kan iemand mij hier inzicht in geven.
    Bijgevoegde bestanden Bijgevoegde bestanden

  2. #2
    Giga Honourable Senior Member
    Geregistreerd
    2 maart 2013
    Al eens iets gelezen over voorbeeldbestanden op deze site? Zo niet kijk dan even hier https://www.helpmij.nl/forum/announcement.php?f=5

    Beperk de inhoud van het bestand tot de vraag die u heeft.
    Je kan een paard naar het water leiden, maar je kan het niet dwingen te drinken.

  3. #3
    Als u mijn bericht gelezen heeft dan weet u wellicht ook dat wanneer ik de VBA code in een voorbeeld bestand toepas het wel werkt. Maar dat wanneer ik de VBA code toepas in onze originele werkbladen, en hier de privacy proof versies, het dan niet werkt.

    Code:
    Sub Copy_All_Defined_Names()
       ' Loop through all of the defined names in the active
       ' workbook.
         For Each x In ActiveWorkbook.Names
          ' Add each defined name from the active workbook to
          ' the target workbook ("Book2.xls" or "Book2.xlsm").
          ' "x.value" refers to the cell references the
          ' defined name points to.
          Workbooks("Book2.xls").Names.Add Name:=x.Name, _
             RefersTo:=x.Value
       Next x
    End Sub
    Laatst aangepast door Rabberzzz : 16 april 2019 om 08:02

  4. #4
    U spreekt altijd van book1 in uw code staat book2

  5. #5
    Probeer eens:
    Code:
    RefersTo:=x.RefersTo
    Groetjes,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  6. #6
    book1 is waar ik de bovenstaande VBA code in zet, als ik dat toepas op een leeg bestand book2 dan werkt het. Maar bron bestand(book1) moet renovatie zijn en doelbestand(book2) moet nieuwbouw zijn. Ik heb book1 toegevoegd zodat als je de vba/macro code in dat bestand uitvoer dat het bij book1 naar nieuwbouw wel werkt, maar vanuit renovatie naar nieuwbouw niet werkt. Dan krijg ik foutmeldingen, wat ik ook probeer, daarom hoop ik dat iemand beter in debuggen is met meer kennis dan ik en die mij van informatie kan voorzien waaraan het ligt.

    edit:
    dank jkpieterse, echter krijg ik de syntax 1004 foutmelding.
    Laatst aangepast door Rabberzzz : 16 april 2019 om 10:27

  7. #7
    Je bereiknamen bevatten #VERW! fouten, daarom lukt het niet met mijn (correcte) syntax. Tip: Name Manager
    Groetjes,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  8. #8
    Klopt, door het weghalen van bepaalde tabbladen komen die #verw, de originele hebben dat niet. Ik ga mij er bij neerleggen dit wordt een onmogelijk verhaal. Bedankt in ieder geval!

  9. #9
    Volgens mij is de juiste syntax:
    Code:
    Workbooks("Renovatie.xlsm").Worksheets("Onderbouw").Range("B30").Name = "KNVBRENOVATIE_OnderbouwOpLocatieIndringingsNorm"
    Misschien kan je daarmee verder?
    Groetjes,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  10. #10
    Ik snap wat je bedoeld en het zou goed kunnen werken, echter gaat het in deze hulpvraag om één specifiek voorbeeld (B30 met de bijbehandere bereiknaam), maar in feiten gaat het om alle bereiknamen in de werkblad. Waarbij ik alle namen verander naar KNVBRENOVATIE_ ipv KNVBNIEUW_ en dat ik dan alles in één keer overzet om vervolgens een paar kleine aanpassingen te maken. De enige manier, aangezien dat idee niet werkt, is alles handmatig invoeren.

  11. #11
    Zo iets?
    Code:
    Sub NamenWijzigen()
    'KNVBRENOVATIE_ ipv KNVBNIEUW_
        Dim oNm As Name
        For Each oNm In ActiveWorkbook.Names
            If LCase(oNm.Name) Like LCase("KNVBNIEUW_*") Then
                oNm.Name = Replace(oNm.Name, "KNVBNIEUW_", "KNVBRENOVATIE_")
            End If
        Next
    End Sub
    Groetjes,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  12. #12
    Het wijzigen van de namen is mij gelukt met een soortgelijke VBA code, die ook te vinden is in de bijlage. Het veranderen lukt wel. Echter niet het (weer terug) overzetten naar hetzelfde werkblad om zodoende KNVBNIEUW_ + KNVBRENOVATIE bereiknamen met dezelfde ranges naast elkaar te hebben.

    Zonder de bovenstaande VBA code te testen, kan het zijn dat de bereiknamen worden dupliceerd? Alles wat KNVBNIEUW_ is wordt KNVBNIEUW_ maar ook KNVBRENOVATIE_?

  13. #13
    Kan je toch zien in Namen beheren? Download anders mijn Name Manager, dan zie je beter wat er gaande is que bereiknamen.
    Groetjes,

    Jan Karel Pieterse
    Excel MVP jkp-ads.com

  14. #14
    Ik had al via Name Manager gekeken wat er mogelijk aan de hand was, vandaar ik achter die _xlfn errors kwam(zie eerste bericht). Via Name Manager kon ik die niet eens verwijderen, ik kreeg enkele foutmeldingen.
    Deze moest ik eerst zichtbaar maken voor Namen beheren met:

    Code:
    Sub ShowNames() 
     Dim nName As Name 
      For Each nName In ThisWorkbook.Names 
       nName.Visible = True 
      Next nName 
    End Sub
    Toen kon ik de _xlfn errors in Namen beheren wel verwijderen, (wel met de wetenschap dat de errors terug zouden komen bij het opnieuw opstarten van het werkblad) toen heb ik geprobeerd zonder het werkblad te sluiten de namen over te zetten, want in feiten had ik alleen die aangepaste namen nodig. Echter kreeg ik(zo uit mijn hoofd) niet de 1004 foutmelding meer, maar een 404 foutmelding. Iets met object niet gedefinieerd o.i.d.

    Voor mij mag het duidelijk zijn dat er 'iets' mis is met mijn werkbladen maar wat? Geen idee eerlijk gezegd, vandaar ik mijn hulpvraag hier had neergelegd. Inmiddels heb ik een andere manier gevonden om mijn einddoel te bereiken. Toch bedankt voor het meedenken!

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren