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

variabele bestandsnaam

Status
Niet open voor verdere reacties.

westra77

Gebruiker
Lid geworden
2 mrt 2007
Berichten
149
bij het kopieren van data uit een ander bestand loop ik tegen het volgende probleem aan:
de code Windows("proef2.xls").Activate in onderstaande macro
moet varibal zijn. indien nu het bestand wordt opgeslagen onder een andere naam, werkt deze code niet meer. proef 2.xls moet de bestandsnaam bevatten van het bestand

Code:
Range("C7").Select
    Windows("proef2.xls").Activate
 
Code:
ThisWorkbook.Activate

Overigens als het kan geen Select en Activate gebruiken.

Met vriendelijke groet,


Roncancio
 
Probeer een macro te bouwen dat elke tabblad proef.... zal pakken

iets in die zin
Code:
    Dim sh
    For Each sh In ThisWorkbook.Worksheets
        If sh.Name Like "proef*" Then
           " jouw macro "   
        End If
    Next
Kan niks verder uitwerken :confused:ben aan het rijden :love:
 
@Trucker
Volgens mij wil TS een willekeurige naam kunnen gebruiken, maar ik kan er natuurlijk naast zitten.

Kan niks verder uitwerken :confused:ben aan het rijden :love:
Vind ik nog knap!
Met 1 hand aan het stuur?
Wegmisbruikers?:cool:

Met vriendelijke groet,


Roncancio
 
alvast bedanktthis workbook.activate werkt niet, omdat binnen de macro code this workbook niet is geselecteerd.ik gebruik trouwens veel select, wat is hier het risico vanik heb de volledige code hieronder weergegeven.* de macro werkt verder goed.

Sub Knop6_BijKlikken()
MsgBox "zorg dat het oude bestand niet is geopend, kies anders voor annuleren en sluit eerst het bestand", vbInformation
Dim Naam As String
On Error GoTo rrh:
Workbooks.Open Application.GetOpenFilename
Naam = ActiveWorkbook.Name
Range("C21:H27").Select
If Range("h1") = "versie 3.1" Then GoTo r Else
If Range("h1") = "versie 4.1" Then GoTo r Else
MsgBox "deze versie is te oud en kan niet worden geupdated", vbInformation
Workbooks(Naam).Close False
Exit Sub

r: If MsgBox("weet u zeker dat u het juiste bestand heeft geselecteerd?", vbQuestion + vbYesNo + vbDefaultButton2, "Update") = vbYes Then
Range("C21:H27").Select
Selection.Copy
Windows("update versie proef2.xls").Activate
Range("A22").Select
ActiveSheet.Paste
Range("A30").Select

Else: MsgBox "De historie blijft bewaard, er wordt niets gewijzigd", vbInformation
End If
Workbooks(Naam).Close False
rrh:
End Sub
 
Laatst bewerkt:
ik heb het ondertussen zelf opgelost, door wel this workbook te gebruiken en de opdracht om het andere bestand te sluiten naar voren te halen.

Code:
Selection.Copy
    Workbooks(Naam).Close False
    ThisWorkbook.Activate

de code bevat echter nog veel select, kan dit kwaad in deze code?
 
Voorbeeld:

Code:
Sub Knop6_BijKlikken()
  MsgBox "zorg dat het oude bestand niet is geopend, kies anders voor annuleren en sluit eerst het bestand", vbInformation

  c0=""
  Application.GetOpenFilename
  With ActiveWorkbook
  If .sheets(1).Range("h1") = "versie 3.1" or  .sheets(1).Range("h1") = "versie 4.1" Then 
    If MsgBox("weet u zeker dat u het juiste bestand heeft geselecteerd?", vbQuestion + vbYesNo + vbDefaultButton2, "Update") = vbYes Then
      .sheets(1).Range("C21:H27").Copy  Workbooks("update versie proef2.xls").sheets(1).Range("A22")
    Else 
      c0="De historie blijft bewaard, er wordt niets gewijzigd"
    End If
  Else
    c0="Deze versie is te oud en kan niet worden geupdated"
  End if

  if c0<>"" then MsgBox c0, vbInformation
  Activeworkbook.Close False
End Sub
 
ik blijf met 1 probleem zitten,
indien ik de opdracht copy geef via de macro code in bestand 2 en weer terug wil keren naar het bestand 1 waar ik de gegevens in wil plakken, dan lukt dit niet.

indien de bestandsnaam van het orginele bestand wordt opgegeven via
Windows("update versie proef2.xls").Activate
dan werkt de macro perfect.
het bestand ("update versie proef2.xls") is echter variabel; oftewel de naam van het bestand is niet per definitie ("update versie proef2.xls")

nadat ik de data gekopieerd heb en de opdracht
ThisWorkbook.Activate
Range("A22").Select
ActiveSheet.Paste
geef dan wordt de informatie geplakt in het bestand waar de informatie is gekopieerd, ik keer op dat moment dus niet terug naar het originele bestand.

hopelijk is bovenstaande duidelijk en is mijn probleemstelling duidelijk
 
Willem

Spendeer eerst aandacht aan de code van Snb.

Code:
Workbooks("update versie proef2.xls").
is in zijn/haar code veranderlijk, zoek dan op een andere manier hoe je dit bestand kan aanspreken. In ieder geval best niet met Select, Activate, Paste, Window, en nog zo van die spullen.

Wigi
 
Laatst bewerkt:
deze code begrijp ik niet helemaal goed, ik heb hem gekopieerd naar mijn bestand, hij geeft echter een foutmelding bij: c0="" een variabele is niet gedefinieerd.
wat moet ik hier zelf aan veranderen?
 
hij geeft echter een foutmelding bij: c0="" een variabele is niet gedefinieerd.
wat moet ik hier zelf aan veranderen?

Dat is eigen aan de codes van Snb. Je moét hiervoor Option Explicit bovenaan in de code verwijderen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan