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

Cellen in kolom laten wijzigen op basis van 1 cel uit andere sheet (niet via if-then)

Status
Niet open voor verdere reacties.

jannemanvermeul

Gebruiker
Lid geworden
30 sep 2010
Berichten
51
Bekijk bijlage INGAVE.xlsxBekijk bijlage CENTRAL.xlsx

Ik wil in sheet "CENTRAL" in de kolom STATUS die waardes op 2 laten zetten van enkel die cellen waar kolom C gelijk is aan de waarde in cel C2 van de sheet "INGAVE".
Tevens dient de systeemdatum/tijd dan in kolom E (DATUM) terecht te komen in "CENTRAL".
Niet met een if-then want de waardes moeten definitief omgezet worden.
In voorbeeld staan zo'n 40 rijen ingevuld in CENTRAL - in praktijk worden dat straks vlot 100.000 rijen.

Ik zette een gelijkaardige vraag reeds eerder op dit forum maar dat was voor het wijzigen binnen zelfde tabblad van één sheet dmv
If Not Intersect(Range("C1"), Target) Is Nothing Then
 
Laatst bewerkt:
Code:
Sub Samenv()
On Error Resume Next
Worksheets(1).Range("A1").AutoFilter Field:=3, Criteria1:=Workbooks("Ingave[1]").Worksheets(1).Range("C2").Value
Worksheets(1).Range("D2:D" & Worksheets(1).UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Value = 2
Worksheets(1).Range("E2:E" & Worksheets(1).UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Value = Date
End Sub
Zet bovenstaande code in een module van Central.
In de code gaat ik er gemakshalve vanuit dat Ingave al geopend is.

Met vriendelijke groet,


Roncancio
 
Doet gedeeltelijk hetgeen ik wens.

Roncancio

Bedoeling is om vanuit de sheet INGAVE (dmv MACRO) enkel die cellen in kolom D van sheet CENTRAL op 2 te zetten waar de waarde van kolom C (in CENTRAL) gelijk is aan de inhoud van cel C2 van INGAVE.
 
Volgens mij deed de code dit al.
Onderstaande code is voor het bestand Ingave

Code:
Sub Samenv()
On Error Resume Next
With Workbooks("Central[1]").Worksheets(1)
    .Range("A1").AutoFilter Field:=3, Criteria1:=Worksheets(1).Range("C2").Value
    .Range("D2:D" & Worksheets(1).UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Value = 2
    .Range("E2:E" & Worksheets(1).UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Value = Date
End With
End Sub

Met vriendelijke groet,


Roncancio
 
Deze code reageert niet vanuit INGAVE.
(Heb intussen de shetts .xlsm hernoemt -- heeft daarmee misschien iets te maken ?)
 
Nog geen oplossing ?

Roncancio

Roncancio
Kan je deze nog eens nazien aub?

Bedoeling is om vanuit de sheet INGAVE (dmv MACRO) enkel die cellen in kolom D van sheet CENTRAL op 2 te zetten waar de waarde van kolom C (in CENTRAL) gelijk is aan de inhoud van cel C2 van INGAVE.
 
In bijgevoegde map zit het bestand Ingave met de aangepaste macro.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Roncancio

Sorry maar als ik de macro uitvoer vanuit de sheet INGAVE dan worden geen aanpassingen uitgevoerd in CENTRAL.
Kan je dit nog eens herbekijken aub, ik raak er zelf niet uit.

In bijgevoegde map zit het bestand Ingave met de aangepaste macro.

Met vriendelijke groet,


Roncancio
 
Het kan zijn dat het bestand niet gevonden werd.
Bij deze een nieuwe aanpassing.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Helaas de data in CENTRAL wordt nog niet gewijzigd.
Ik heb beide sheets in dezelfde map c:\temp staan en de marco wordt werl degelijk uitgevoerd (magbox tussen gezet) maar de data blijft ongewijzigd.

Het kan zijn dat het bestand niet gevonden werd.
Bij deze een nieuwe aanpassing.

Met vriendelijke groet,


Roncancio
 
Is central geopend of dient het bestand dmv de macro geopend te worden?

Met vriendelijke groet,


Roncancio
 
De macro zoekt in de directory C:\Temp naar het bestand Central.
Als het bestand gevonden wordt, dan zal de sortering, aanpassing, etc plaatsvinden.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Al een hele stap verder.
Macro werkt bij de eerste uitvoering vanuit INGAVE.
Wijzig ik echter in INGAVE cel B2 van week 19 naar 20 en voer ik de macro opnieuw uit dan worden in CENTRAL deze niet meer aangepast (had CENTRAL manueel terug opgeslagen en gesloten).


De macro zoekt in de directory C:\Temp naar het bestand Central.
Als het bestand gevonden wordt, dan zal de sortering, aanpassing, etc plaatsvinden.

Met vriendelijke groet,


Roncancio
 
Dan gaan we een stapje verder.
Bij een wijziging in het werkblad Ingave wordt de sortering en datuminvoer bij Central uitgevoerd.
Central wordt in de C:\Temp gezocht en zonodig geopend indien dat nog niet het geval is.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Inderdaad weeral verder geraakt; als van AAAAAA (sheet INGAVE) 19 op 20 wordt gezet doet ie het goed.
Ik heb wel dit deel uitgeschakeld "If Target.Column = 2 Then" want kwam op een foutmelding
Wijzig ik echter ik kolom A (WIE) van AAAAAA naar BBBBBB dan wordt de waarde in CENTRAL niet op 2 gezet.
Vreemd nadien funtioneerde het ook niet meer met AAAAAA.

Eigenlijk zou ook na iedere beweging naar CENTRAL die moeten worden opgeslagen en gesloten, omdat het de bedoeling is dat straks meerdere personen (nagenoeg) simultaan deze CENTRAL-sheet moeten kunnen benaderen.
 
In deze nieuwe versie wordt bij elke wijziging het bestand CENTRAL geopend en de handelingen uitgevoerd.
Vervolgens wordt CENTRAL automatisch opgeslagen.

Met vriendelijke groet,


Roncancio
 

Bijlagen

Opent en sluit correct, maar past enkel altijd AAAAAA19 aan.
Hoeft niet gemaakt dat bij wijzigen v/e cel automtisch de macro wordt uitgevoerd, maar ik maak nadien een knop in de aard van "HAAL DATA" die dan eerst de codes van 1 naar 2 zal zetten.
 
Zet onderstaande code bij een knop.

Code:
Dim wBook As Workbook
    On Error Resume Next
    Set wBook = Workbooks("CENTRAL.XLSX")
    If wBook Is Nothing Then CentFile = "C:\Temp\CENTRAL.XLSX"
    If Dir(CentFile) <> "" Then Workbooks.Open CentFile
    With Workbooks("CENTRAL.XLSX").Worksheets(1)
        .Range("A1").AutoFilter Field:=3, Criteria1:=Worksheets(1).Range("C2").Value
        .Range("D2:D" & .UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Value = 2
        .Range("E2:E" & .UsedRange.Rows.Count).SpecialCells(xlCellTypeVisible).Value = Date
    End With
    Workbooks("CENTRAL.XLSX").Close SaveChanges:=True

Ik heb de code getest met een knop voor zowel 19 als 20.

Met vriendelijke groet,


Roncancio
 
Bijna voltooid.

Kan je de INGAVE sheet in dit deel hieronder vast zetten op vb. c:\temp\INGAVE.XLXM
(Range("A1").AutoFilter Field:=3, Criteria1:=Worksheets(1).Range("C2").Value)

Zo gaat straks als meerdere simultaan gaan werken de CENTRAL altijd de waarde halen uit de INGAVE sheet van de persoon zelf.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan