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

Inhoud Export bestand kopieren

Status
Niet open voor verdere reacties.

gielkleinjan

Gebruiker
Lid geworden
8 okt 2019
Berichten
17
Vanuit een app kan ik een documentgegevens exporteren in een Excelbestand. Om de gegevens met een paar muisklikken een goede lay-out mee te geven heb ik een sjabloon gemaakt. Door de regels in het export bestand te kopieren en te plakken in het doelbestand wordt automatisch de goede layout meegegeven.

Maar...

in het doelbestand zit in de regels van kolom "B" een formule die de lange Hyperlinks uit kolom A versimpelt als "Link" (kolom A valt vervolgens buiten het printbereik). Bij het plakken van de gegevens uit het exportbestand wil ik dat hij niet in de inhoud van Kolom B plakt omdat anders de formule wordt overschreven. Het sjabloon wordt straks door meerdere mensen gebruikt dus ik wil het niet al te ingewikkeld maken.

het moet zoiets worden:
-gebruiker maakt export uit prgramma X
-gebruiker selecteert alle inhoud uit export bestand en kopieert deze
-in doel bestand drukt gebruiker op de active X knop "Data uit export plakken"
-macro gaat staan in kolom A7
-macro plakt alleen waardes
-macro slaat kolom B over
-indien er niets gekopieerd is geen Foutcode 1004 maar een melding dat er niets gekopieerd is

is dit eenvoudig te fixen?
 
Laatst bewerkt:
dus ik wil het niet al te ingewikkeld maken
Maak in je doelbestand een "invoerblad" met een tabel waar je gebruikers zelf de gegevens plakken met ctrl-v of zo, dat geeft ze gelijk een controlemogelijkheid.
Met een knop [Verwerken] of zo kopieer je de benodigde gegevens naar de gewenste plaatsen.
 
Bijgaand de voorbeeldbestanden om eea beter te duiden.

-het bestand data export is hoe de export uit het andere programma komt.
-het bestand gegevensimport is hoe ik het graag zou willen hebben inclusief de active x knoppen

wat ik dus zou willen is dat alle geslecteerde data uit het data exportbestand wordt geplakt, maar dat de waarden in kolom B worden overgeslagen om zo de formules te handhaven.
 

Bijlagen

slimmer is, dat de gebruiker vooraleer hij de selectie van het kopieren maakt, de kolom B verbergt en dan pas de selectie maakt, dan is het peanuts.
Noemt het te kopieren bestand altijd gelijk ?
 
Nee helaas, het exportbestand krijgt telkens een nieuwe bestandsnaam.

Ik wil de eindgebruiker zo min mogelijk laten doen. daarom liever niet de optie om allerlij acties te doen in het exportbestand.
 
zo te zien moet de eindgebruiker wel de selectie maken met CTRL-C en terugkeren naar het originele bestand
ik heb het nu gewoon met de waarden gedaan
Code:
Sub ZonderB()
   If ActiveWorkbook.Name <> ThisWorkbook.Name Then MsgBox "foutje", vbCritical: Exit Sub
   Set sh = Sheets.Add                           'hulpblad invoegen
   Range("A1").PasteSpecial xlValues             'daar clipboard wegschrijven
   Columns("B:B").Delete                         'B-kolom weg
   sh.UsedRange.Copy                             'heel de boel weer laden
   Sheets("Blad2").Range("A17").PasteSpecial xlValues   'kopieren naar gewenste plaats
   Application.DisplayAlerts = False             'geen gezever
   sh.Delete                                     'hulpblad weg
   Application.DisplayAlerts = True
End Sub
rechtstreeks in de tabel
Code:
Sub ZonderB()
   If ActiveWorkbook.Name <> ThisWorkbook.Name Then MsgBox "foutje", vbCritical: Exit Sub
   Set sh = Sheets.Add                           'hulpblad invoegen
   Range("A1").PasteSpecial xlValues             'daar clipboard wegschrijven
   Columns("B:B").Delete                         'B-kolom weg
   With sh.UsedRange
      If .Columns.Count < 9 Then
         MsgBox "te weinig kolommen"
      Else
         Sheets("documentenlijst").ListObjects(1).ListRows.Add.Range.Cells(1).Resize(.Rows.Count, 9).Value = .Value
      End If
   End With
   Application.DisplayAlerts = False             'geen gezever
   sh.Delete                                     'hulpblad weg
   Application.DisplayAlerts = True
End Sub
 
Laatst bewerkt:
Je geeft veel wensen aan maar bent erg summier in het vertellen van hoe het proces werkt. Moet de doeltabel eerst leeg gemaakt worden? Moeten de gebruikers eerst het exportbestand openen en waarom gebruik je daar geen filedialog voor.

In basis kan het heel simpel:
Code:
Sub VenA()
  With GetObject("E:\Temp\Dataexport tbv forum.xlsx")
    With .Sheets(1).Cells(1).CurrentRegion
      x = .Rows.Count
      If x > 1 Then
        .Cells(2, 2).Resize(x - 1).FormulaR1C1 = "=HYPERLINK(RC[-1],""Link"")"
        If Sheets("Documentenlijst").ListObjects(1).ListRows.Count Then Sheets("Documentenlijst").ListObjects(1).DataBodyRange.Delete
        .Offset(1).Resize(x - 1).Copy Sheets("Documentenlijst").Cells(7, 1)
       Else
        MsgBox "geen nieuwe data"
      End If
    End With
    .Close 0
  End With
End Sub
 
Code:
Sub M_snb()
   With GetObject("G:\OF\__dataexport_forum.xlsx").Sheets(1)
      .Columns(2).Delete
      .UsedRange.Offset(1).Copy Blad1.Cells(7, 2)
   End With
   Blad1.ListObjects(1).DataBodyRange.Columns(1).Style = "hyperlink"
End Sub
 
Bedankt voor al jullie reacties. Helaas krijg ik het niet voor elkaar. Iets meer duiding voor het proces:

In een programma waar we allerlij documenten in opslaan krijgen we geen mooie output voor een gegevenslijst. Wel kunnen we een Excel export trekken van de documenten. Dit bestandje wordt na de druk op de exportknop telkens opnieuw gegenereerd met een unieke naam. het document komt in de map downloads.

Om de gegevenslijst er fatsoenlijk uit te laten zien zal er allerlij opmaak moeten worden toegevoegd aan het exportbestand.

Daarom heb ik een sjabloon bedacht (hierboven toegevoegd "gegevens importbestand". in dit sjabloon wil ik zonder dat de eindgebruiker veel acties moet doen de gegevens uit het exportbestand inkopieren, waarbij kolom B moet worden overgeslagen ivm formules. hoe ik het in mijn hoofd had is dat de gebruiker het exportbestand opent, handmatig alle gegevens selecteert en op ctrl-c drukt.

Dan opent hij/zij het sjabloon en drukt op de knop "gekopieerde gegevens plakken". de klembordgegevens (alleen waarden) worden vervolgens vanav cel A7 geplakt in de tabel, waarbij kolom B wordt overgeslagen. in kolom B staat een formule om de lange hyperlink in te korten tot "Link"

Ik hoop dat ik zo voldoende duiding heb gegeven.

Het zou mooi zijn als iemand de code kan plakken in mij Excelbestandje. De codes hierboven krijg ik niet werkend, dit gaat mij net iets boven de pet :(
 
Het herhalen van de vraag heeft weinig toegevoegde waarde. Er staan vier suggesties hoe je het zou kunnen oplossen. Als geen van deze voldoen dan moet je maar even een andere pet kopen.
 
Heb je de suggesties wel getest ?
Daarop verwacht ik dan allerlei inhoudelijk commentaar.
 
@snb: Ik heb de suggesties getest maar ik kreeg ze niet aan de praat.
@VenA: Het is niet een kweste van voldoen van de suggestues. De voor mij best ingewikkelde codes krijg ik niet aan de praat en ik blijf foutmeldingen krijgen. Dit ligt niet aan jullie suggesties, waar ik heel blij mee ben, maar aan mijn eigen kennis beperking.

Excuses...

@cow 18: super bedankt het is gelukt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan