Na een tijdje gezocht te hebben in Excel en GOT helaas geen bevredigende oplossing gevonden. Is het mogelijk om in excel een veld zijn eigen kolom en rijwaarde weer te laten geven. Dus, cel B2 zelf B2 te laten aangeven.
Is dit iets wat je zoekt?
Dit bijvoorbeeld geeft $C$7 terug.
code:
1
| =CELL("address",C7) |
Dit bijvoorbeeld geeft $C$7 terug.
En zo is het maar net.
Wilde dit net posten, maar dan kan TS net zogoed C7 invullenGlabbeek schreef op woensdag 09 maart 2005 @ 15:15:
Is dit iets wat je zoekt?
code:
1=CELL("address",C7)
Dit bijvoorbeeld geeft $C$7 terug.
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
Nupes, dat is het niet helemaal. Ik wil velden hun eigen waarden aan laten geven. Dus, kolom c, rij 1 --> veld = c1. Nou wil ik die waarde ook in die cel hebben
Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.
Ok.
=CELL("address",C7) (komt dit door mijn engelse versie???) geeft bij mij een error aan, echter =CELL("address") werkt wel. Helaas is dit niet precies wat ik zoek aangezien alle velden de waarden van het laatste veld aannemen, beetje vreemd.
=CELL("address",C7) (komt dit door mijn engelse versie???) geeft bij mij een error aan, echter =CELL("address") werkt wel. Helaas is dit niet precies wat ik zoek aangezien alle velden de waarden van het laatste veld aannemen, beetje vreemd.
Verwijderd
selecteer cel a1
kies invoegen->naam->definieren
namen in werkmap (bv): celadres
verwijst naar:=CEL.LEZEN(1;A1)
klik toevoegen
nu kan je in elke cel zijn adres oproepen met de formule =celadres
beerdop, dit is de standaard werking van de formule die je gebruikt.
engels equivalent van mijn verwijst naar:=GET.CELL(1;A1)
kies invoegen->naam->definieren
namen in werkmap (bv): celadres
verwijst naar:=CEL.LEZEN(1;A1)
klik toevoegen
nu kan je in elke cel zijn adres oproepen met de formule =celadres
beerdop, dit is de standaard werking van de formule die je gebruikt.
engels equivalent van mijn verwijst naar:=GET.CELL(1;A1)
[ Voor 27% gewijzigd door Verwijderd op 09-03-2005 16:02 ]
De enige manier waarop ik weet dat het kan, is met een omweg langs macro's:
Open de visual basic editor (Alt + F11 bij mij), dubbelklik op Sheet 1 en plak de volgende code:
Als je nu CELADDR in een cel zet, en enter geeft, dan wordt de inhoud gewijzigd naar het celadres. Het werkt, maar het is een omweg. CELADDR kan je vanzelfspreken wijzigen naar je eigen waarde, ook kan je de macro achter een sneltoets zetten in plaats van de Worksheet_Change functie.
Open de visual basic editor (Alt + F11 bij mij), dubbelklik op Sheet 1 en plak de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Text = "CELADDR" Then
Range(getCharByCol(Target.Cells.Column) & CStr(Target.Cells.Row)).Select
ActiveCell.FormulaR1C1 = getCharByCol(ActiveCell.Column) & CStr(ActiveCell.Row)
End If
End Sub
'Retourneerd een kolomnaam bij het invoeren van een cijfer.
Function getCharByCol(aCol As Long)
Dim tst As Long
If (aCol < 27) Then
getCharByCol = Chr$(64 + aCol)
Else
tst = Int((aCol - 1) / 26)
getCharByCol = getCharByCol(tst) & getCharByCol(aCol - (tst * 26))
End If
End Function |
Als je nu CELADDR in een cel zet, en enter geeft, dan wordt de inhoud gewijzigd naar het celadres. Het werkt, maar het is een omweg. CELADDR kan je vanzelfspreken wijzigen naar je eigen waarde, ook kan je de macro achter een sneltoets zetten in plaats van de Worksheet_Change functie.
edit:
Net te laat
Net te laat
[ Voor 4% gewijzigd door Speedpete op 09-03-2005 16:02 ]
Object-oriented programming offers a sustainable way to write spaghetti code | Hoe vleugels wel werken.
Ok, het invoegen van de macro en het verwijzen van "CELADDR" naar de daadwerkelijke cellocatie werkt goed
!! Helaas veranderen de waarden van de cellocaties niet mee op het moment dat er een kolom of rij wordt toegevoegd. Is daar iets op te verzinnen?
Verwijderd
voeg als eerste regel in de functie application.volatile toe.scheef gekeken
merk op dat voor mijn oplossing geen macro nodig is.
merk op dat voor mijn oplossing geen macro nodig is.
[ Voor 9% gewijzigd door Verwijderd op 09-03-2005 16:41 ]
_heretic_
Weer wat geleerd, jou oplossing werkt idd ook en de waarden veranderen mee zodra er een kolom wordt ingevoegd. Enige is wel dat er dollartekens in de cel komen te staan ($A$1). Enig idee of er een manier is om dat te fixen? Ben er nog mee aan het experimenteren!
Weer wat geleerd, jou oplossing werkt idd ook en de waarden veranderen mee zodra er een kolom wordt ingevoegd. Enige is wel dat er dollartekens in de cel komen te staan ($A$1). Enig idee of er een manier is om dat te fixen? Ben er nog mee aan het experimenteren!
Verwijderd
ipv. de formule =celadres zet je
code:
1
2
| =substitueren(celadres;"$";"") =substitute(celadres,"$","") |
Pagina: 1