Delen via

Hoe kan ik een makro tekst laten kopiëren ?

Anoniem
2024-02-27T13:46:38+00:00

Ik heb een makro waarmee in een bepaalde tekst laat kopiëren naar een tekstvak, tot zover niets aan de hand.
Maar deze makro die onthoud de tekst die hij moet kopiëren. Als de te kopiëren tekst wijzigt doet hij toch de oude tekst plakken. Hoe verander ik dit?

Microsoft 365 en Office | Excel | Overige | Windows

Vergrendelde vraag. Deze vraag is gemigreerd vanuit de Microsoft Ondersteuning-community. U kunt met een stem aangeven of de inhoud nuttig is, maar u kunt geen opmerkingen of antwoorden toevoegen of de vraag volgen.

0 opmerkingen Geen opmerkingen

Antwoord geaccepteerd door vraagauteur

  1. Anoniem
    2024-02-29T16:45:34+00:00

    Als het blad met het tekstvak "Blad1" is en de naam van dat tekstvak nog altijd "Textbox 1", kun je gebruiken (let op de spatie tussen Textbox en 1):

    Sub macro2() 
    
    Sheets("Blad1").Shapes("Textbox 1").TextFrame.Characters.Text = Sheets("Motorkap").Range("B14").Value 
    
    End Sub
    

    Was dit antwoord nuttig?

    1 persoon vond dit antwoord nuttig.
    0 opmerkingen Geen opmerkingen

14 extra antwoorden

Sorteren op: Meest nuttig
  1. Anoniem
    2024-02-28T12:52:21+00:00

    De automatische vertaling werkt niet altijd mee

    Referenties zou in dit geval dan verwijzingen moeten zijn, forms staat er niet tussen hiervoor heb ik gekozen voor feeds

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  2. Anoniem
    2024-02-28T10:56:54+00:00

    Hoi Marcel,

    De foutmelding die u tegenkomt, suggereert dat VBA een specifieke functie of subroutine waarnaar u verwijst niet kan vinden in uw macro. Dit gebeurt vaak wanneer de functie of subroutine niet is gedefinieerd binnen het huidige VBA-project of de huidige module.

    In dit geval kan het probleem te maken hebben met het gebruik van het klembordobject, waarvoor een verwijzing naar de Microsoft Forms 2.0-objectbibliotheek is vereist. U kunt deze referentie als volgt toevoegen:

    1. Ga in de VBA-editor naar het menu "Extra".
    2. Selecteer "Referenties" in het vervolgkeuzemenu.
    3. Zoek en vink in de lijst met beschikbare referenties "Microsoft Forms 2.0 Object Library" aan.
    4. Klik op "OK" om de wijzigingen op te slaan.

    Nadat u de verwijzing hebt toegevoegd, probeert u de macro opnieuw uit te voeren. Als het probleem zich blijft voordoen of als u nog steeds fouten tegenkomt, zijn er mogelijk andere problemen in uw code. Zorg ervoor dat alle functies en subroutines correct zijn gedefinieerd en dat er geen syntaxisfouten zijn.

    Hier is de gewijzigde code met de toegevoegde referentie:

    Sub CopyDynamicText() Dim newText As String

    ' Wis het klembord Application.CutCopyMode = Onwaar

    ' Leg dynamische tekst vast (vervang dit door uw methode om de tekst vast te leggen) newText = Bereik("A1"). Waarde ' Voorbeeld: Tekst ophalen uit cel A1

    ' Kopieer de dynamische tekst naar het klembord Als nieuwTekst <> "" Dan ' Tekst instellen op klembord SetKlembordTekst nieuwTekst Einde als

    ' Plak de tekst in het tekstvak (vervang "Tekstvak1" door de naam van uw tekstvak) Tekstvak1.Tekst = nieuwTekst Einde Sub

    ' Subroutine om tekst op het klembord in te stellen Sub SetClipboardText(tekst als tekenreeks) MyData dimmen als nieuw DataObject MyData.SetText tekst MyData.PutInKlembord Einde Sub

    Zorg ervoor dat u "A1" vervangt door de juiste celverwijzing en ""TextBox"1" door de naam van uw tekstvak. Als u nog steeds problemen ondervindt, controleer dan uw referenties en zorg ervoor dat alle functies en subroutines correct zijn gedefinieerd.

    Als ik ergens anders mee kan helpen, laat het me dan weten. Ik beantwoord graag al uw andere vragen.

    Geef iets terug aan de gemeenschap. Help de volgende persoon die dit probleem heeft door aan te geven of dit antwoord uw probleem heeft opgelost. Klik hieronder op Ja of Nee.

    Hartelijke groet, Utkarsh

    Deze reactie is automatisch vertaald. Hierdoor bevat het wellicht gramaticale fouten of vreemde zinnen.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  3. Anoniem
    2024-02-28T10:07:07+00:00

    Ik krijg onderstaande foutmelding:

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen
  4. Anoniem
    2024-02-27T14:22:44+00:00

    Hoi Marcel,

    Bedankt dat je contact hebt opgenomen met dit forum. Ik ben Utkarsh en als mede-Microsoft-gebruiker ben ik hier en klaar om je vandaag te helpen. Ik ben een gebruiker zoals jij, dit is een gebruikersforum en niet rechtstreeks Microsoft.

    Maak je geen zorgen, ik zal je helpen dit probleem op te lossen, je kunt er zeker van zijn dat ik mijn best zal doen om je te helpen.

    Om dit probleem met uw macro aan te pakken, moeten we ervoor zorgen dat de tekst die u wilt kopiëren dynamisch wordt vastgelegd telkens wanneer de macro wordt uitgevoerd, in plaats van deze statisch op te slaan. Op deze manier kopieert de macro altijd de bijgewerkte tekst, zelfs als de tekst verandert. U kunt uw macro als volgt wijzigen:

    1. Wis de inhoud van het vorige klembord: Voordat u de nieuwe tekst kopieert, moet u het klembord wissen om er zeker van te zijn dat er geen oude tekst overblijft.
    2. Leg dynamische tekst vast: In plaats van de tekst rechtstreeks in de macro op te slaan, legt u deze dynamisch vast vanaf de bron telkens wanneer de macro wordt uitgevoerd. Dit kan inhouden dat u verwijst naar een cel in Excel, een variabele in uw code of een andere methode die geschikt is voor uw specifieke scenario.
    3. Macrologica bijwerken: Wijzig uw macro om de stap op te nemen om de huidige tekst dynamisch vast te leggen voordat u deze naar het tekstvak kopieert.

    Hier volgt een algemeen voorbeeld van hoe uw macro eruit zou kunnen zien in VBA (Visual Basic for Applications) als u deze in Excel gebruikt:

    Sub CopyDynamicText() Dim newText As String

    ' Wis het klembord Application.CutCopyMode = Onwaar

    ' Leg dynamische tekst vast (vervang dit door uw methode om de tekst vast te leggen) newText = Bereik("A1"). Waarde ' Voorbeeld: Tekst ophalen uit cel A1

    ' Kopieer de dynamische tekst naar het klembord Als nieuwTekst <> "" Dan Klembord.SetText nieuwTekst Einde als

    ' Plak de tekst in het tekstvak (vervang "Tekstvak1" door de naam van uw tekstvak) Tekstvak1.Tekst = nieuwTekst Einde Sub

    In dit voorbeeld:

    -'Bereik("A1"). 'Waarde' staat voor het vastleggen van de tekst uit cel A1 in Excel. U moet dit vervangen door de methode die u gebruikt om de dynamische tekst te krijgen. -'Clipboard.SetText newText' stelt de tekst in op het klembord. -'TextBox1.Text = newText' plakt de tekst in een tekstvak met de naam "TextBox1".

    Zorg ervoor dat u de code aanpast aan uw specifieke omgeving en vereisten. Als u geen Excel of VBA gebruikt, moet de algemene aanpak van het dynamisch vastleggen van de tekst voordat deze wordt gekopieerd nog steeds van toepassing zijn, maar de implementatiedetails kunnen variëren.

    Ik hoop dat deze informatie helpt! Als ik ergens anders mee kan helpen, laat het me dan weten. Ik beantwoord graag al uw andere vragen.

    Geef iets terug aan de gemeenschap. Help de volgende persoon die dit probleem heeft door aan te geven of dit antwoord uw probleem heeft opgelost. Klik hieronder op Ja of Nee.

    Hartelijke groet, Utkarsh

    Deze reactie is automatisch vertaald. Hierdoor bevat het wellicht gramaticale fouten of vreemde zinnen.

    Was dit antwoord nuttig?

    0 opmerkingen Geen opmerkingen