Gegevens overzetten tussen twee excel bestanden

Pagina: 1
Acties:

Onderwerpen

Vraag


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Mijn vraag
...
Ik heb een Excelmap (het origineel) bestaande uit meerdere bladen. Op deze bladen bevinden zich vergrendelde en ontgrendelde cellen. Meerdere personen ( de gebruikers) ontvangen en kopie van deze map en vullen in de ontgrendelde cellen hun gegevens in. Het origineel wordt regelmatig verder ontwikkeld en dan weer aan de gebruikers gestuurd. De gebruikers moeten mbv een knop in de verder ontwikkelde map die ze hebben ontvangen hun eerder ingevoerde gegevens kunnen overhalen. Met andere woorden, de inhoud van de alle ontgrendelde cellen moet worden overgezet naar de overeenkomstige cellen in de ontvangen gewijzigde map. Met welke vba code kan ik dit realiseren?

Relevante software en hardware die ik gebruik
...
Excelmap is gerealiseerd in excel 2007
Wat ik al gevonden of geprobeerd heb
Al meerdere forums bezocht maar niets dat goed werkt gevonden.

Alle reacties


Acties:
  • 0 Henk 'm!

  • Patrick_6369
  • Registratie: April 2010
  • Laatst online: 22:18
Volgens mij is dat een heel lastige klus. Als documenten qua indeling gaan verschillen is het heel lastig om de computer te leren wat hij moet doen.

Ik zou het zo aanpakken.
Eerst zul je de VBA-code in je doelsheet moeten leren uit welk brondocument de gegevens moeten worden opgehaald.
Daarna denk ik dat je iedere cel of bereik of tabblad of wat je dan ook wilt dat er gekopieerd moet worden moet definiëren in je brondocumnt (met celnamen). In je doeldocument doe je hetzelfde met de plekken waar het terecht moet komen.
Vervolgens kun je VBA leren dat hij in het brondocument moet gaan zoeken naar naam zus, dat moet kopiëren en vervolgens moet plakken in doeldocument bereik zo.

De code is simpel ga naar, selecteren, kopiëren, ga naar, selecteren en plakken. Dat is wel bij elkaar te googlen hoe je dat doet in VBA (doe ik ook altijd).

Dit betekent ook dat je je VBA-code schrijft voor het overhalen van versie 1 naar 2. En dat je later de VBA-code weer moet aanpassen voor versie 2 naar 3.

Ik zou er niet aan beginnen. Zelfs als het je met veel moeite 1x lukt, is het i.m.o. veel te veel werk om te onderhouden.
Al meerdere forums bezocht maar niets dat goed werkt gevonden.
Dat geeft te denken of dat wat je wilt wel realistisch is.

Hier zou een handtekening kunnen staan.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Patrick, bedankt voor je reaktie.

Dat het lastig is zal best maar dit zal mij er niet van weerhouden naar een oplossing te zoeken. Voor het leren van welk brondocument gehanteerd moet worden, heb ik inmiddels al iets gevonden op internet. Definieren van de cellen die gekopieerd dienen te worden hoeft niet. Dit zijn alle cellen die niet vergrendeld zijn, deze zijn gebruiker-specifiek en moeten dus worden overgehaald. Als geschoven wordt met cellen dan kan dat via een tabel waarin de relatie wordt gelegd tussen de oude positie en de nieuwe positie.

Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Verwijderd schreef op donderdag 3 oktober 2019 @ 09:54:
de inhoud van de alle ontgrendelde cellen moet worden overgezet naar de overeenkomstige cellen in de ontvangen gewijzigde map. Met welke vba code kan ik dit realiseren?
Bijoorbeeld zo:
code:
1
2
3
4
5
6
7
8
9
10
Sub macro2()
Dim cl As Range
With Sheets("Blad1")
For Each cl In .Range("a1:e10")
If cl.Locked = False Then
cl.Copy Sheets("Blad2")
End If
Next cl
End With
End Sub

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben inmiddels al een eind op weg, Zie onderstaande code. Ik krijg echter foutmelding 9 "subscript valt buiten bereik" bij regel: Worksheets("Dash1board").Cells(y, x).Value = Workbooks(Pathname).Worksheets("Dash1board").Cells(y, x).Value
Als ik Workbooks(pathname) weglaat dan funktioneert het.

Wat is er fout ??


Sub ImportData()


Cells(13, 23).Value = ""

MsgBox "Selecteer bestand van waaruit data geimporteerd dient te worden"
Dim fDialog As Office.FileDialog
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
If .Show = True Then
For Each Varfile In .SelectedItems
MsgBox Varfile
Cells(13, 23).Value = Varfile
Next
Else
MsgBox "Importeren afbreken?"
End If
End With
Pathname = Range("W13").Value


Windows("Finplan 0-versie -import.xlsm").Activate

'Sheet Dash1board updaten

Sheets("Dash1board").Select
Cells(8, 30).Value = "Import aktief": Cells(8, 34).Value = "Blad 1"
For y = 2 To 5
For x = 2 To 77

If Worksheets("Dash1board").Cells(y, x).Locked = True Then GoTo A
Worksheets("Dash1board").Cells(y, x).Value = Workbooks(Pathname).Worksheets("Dash1board").Cells(y, x).Value

A: Next x
Next y


ActiveWorkbook.Close SaveChanges:=False
Cells(8, 30).Value = "Import gereed": Cells(8, 34).Value = ""
Range("A1").Select

End Sub

[ Voor 12% gewijzigd door Verwijderd op 07-10-2019 22:41 ]


Acties:
  • 0 Henk 'm!

  • dix-neuf
  • Registratie: Juli 2018
  • Niet online
Verwijderd schreef op maandag 7 oktober 2019 @ 12:36:
Als ik Workbooks(pathname) weglaat dan funktioneert het.
Wat is er fout ??
'Pathname' is fout, die naam wordt nergens gedefinieerd.
Probeer in plaats van 'pathname' eens: ActiveWorkbook.Path

NB: De macro in mijn bericht hierboven kopieert de inhoud van niet-beveiligde cellen van blad1 naar blad2 in eenzelfde bestand, niet van het ene bestand naar een ander bestand.
Pagina: 1