Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Programmering og webdesign \ Programmering
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

VBA: ændring af data i en excel celle.

Af Superbruger kemoen | 18-03-2011 10:06 | 2051 visninger | 15 svar, hop til seneste
Hej hol, Nu sidder jeg med lidt af en udfordrende opgave, som kan fixes nemt hvis man er en haj til excel kodning, hvilket jeg så ikke helt er... :) Men "problemet" står i følgende. Har cellen 'S' som indeholder links til filer på vores server drev, i den nuværende tilstand står hele linket der faktisk, dog uden dens extension i dette tilfælde .pdf Med de nye tiltag som skal afhjælpe slutbrugeren, skal disse extensions dog tilføjes til alle linksene i cellen for at kunne fungere i vores system. Hvilket jo ville være nemt at gøre manuelt, hvis ikke det var fordi der er tale om 16000+ extensions som skal tilføjes.. :) Så i sidste ende, hvordan får jeg excel til selv at tilføje disse? Der er ikke mulighed for at flytte det til en anden celle og lave ændringen i det sammenhæng, ergo skal koden kunne læse cellen, tilføje extension og så poste data tilbage i cellen. Lidt af nød (for mig i det mindste) forhåbentlig er der nogle kvikke hoveder der ude blandt jer ;-)
--
P5N-T Deluxe | Q6600 | 8800GT | Mushinkin DDR2 | Forlidt HDD :(
#1
gæst
Gæst
18-03-2011 10:50

Rapporter til Admin
Du kan sagtens lave en løkke, men det afhænger lidt af hvordan dataen er ordnet. Står det i én kolonne, med ingen tomme rækker? Hvis de står i eks. clA, da kan du jo eks. i clB skrive .pdf og knalde den i bund. I clC laver du så formlen =TEKST(A1;)&TEKST(B1;). Knald i bund. Endeligt kopierer du kolonne C og sætter "særligt" ind i A, med værdier.
--
Gæstebruger, opret dit eget login og få din egen signatur.
#2
Pokerhval
Ny på siden
18-03-2011 11:59

Rapporter til Admin
Hejsa Har lavet noget kode du måske kan bruge. HUSK at lave en kopi af dit ark for en sikkerhedsskyld :) Gør som følger: 1. Højre klik på det ark der indeholder dine links 2. vælg "View code (vis kode)" 3. I vinduet til højre der hedder "Book1 - Sheet1" (måske mappe1 - Ark1 alt efter sprog og ark nummer), indsætter du dette kode: Private Sub Worksheet_Activate() Dim startCelle As String Dim slutCelle As String Dim extension As String Dim x As Range startCelle = "A1" slutCelle = "A3" extension = ".pdf" For Each x In Range(startCelle, slutCelle) x.Value = x.Value + extension Next End Sub 4. nu ændrer du værdierne for "startCelle" og "slutCelle", så det passe med start cellen og slut cellen du har dine links i (hvis de vel at mærke står i samme kollonne hele vejen ned igennem arket) 5. Skift "extension", til den extension du vil indsætte efter linket 6. gå tilbage til dit regneark, skift til f.eks ark 2, skift tilbage til ark 1 (altså det ark der indeholder dine links) og koden bliver udført. Håber det kan bruges mvh. Søren
--
#3
Pokerhval
Ny på siden
18-03-2011 12:07

Rapporter til Admin
I punkt 1: "Højre klik på det ark der indeholder dine links ", mener jeg at du skal trykke på den lille fane nederst til venstre hvor der f.eks. står "Ark 1" eller hvad dit ark nu hedder :)
--
#4
Pokerhval
Ny på siden
18-03-2011 12:18

Rapporter til Admin
Og når links så er ændret, går du igennem samme steps igen og fjerner koden (Ellers vil der blive tilføjet extensions hver gnag du skifter tilbage til arket :) ). Det er en nem og hutig løsning, derfor bliver der ikke checket for div. forholsregler...
--
#5
kemoen
Superbruger
18-03-2011 12:31

Rapporter til Admin
#1 Desværre kan jeg ikke det da det ikke er alle felterne i cellen som har dataen, plus at jeg ikke bare kan flytte rundt på ting og sager da regnearket er temmelig fyldt med alverdens. #2+3 Tak søren, meget veludført guide du har skrevet! Jeg er dog allerede taget hjem på weekend, men tester det af på mandag og vender tilbage om det har fungeret :) Vil tilføje at det til forveksling ligner nogle af de engelske guides jeg læste i går, men aldrig fik til at fungere, måske fordi nogle af mine oversættelser fra engelsk til dansk kode var forkert.. Glæder mig hvertfald til at teste det af. :)
--
P5N-T Deluxe | Q6600 | 8800GT | Mushinkin DDR2 | Forlidt HDD :(
#6
kemoen
Maxibruger
21-03-2011 08:24

Rapporter til Admin
Works like a charm! Dog var der lige en bette ting som jeg vidst glemte at nævne, eftersom der godt nok er 16000+ rækker med links i den celle, så er det altså ud af 50000+ rækker, ergo har jeg en fandes masse rækker hvor der så nu bare står .pdf i :-) Så er det vil bare hvordan jeg sortere det ud sådan at den kun fylder i de rækker hvor der faktisk er data i feltet? Ellers skal du hvertfald have tak for hjælpen søren, det virkede som jeg beskrev opgaven! :-)
--
P5N-T Deluxe | Q6600 | 8800GT | Mushinkin DDR2 | Forlidt HDD :(
#7
Pokerhval
Ny på siden
21-03-2011 14:48

Rapporter til Admin
Glad for at kunne hjælpe :) Hvis du tager udgangspunkt i de oprindelige data uden extensions på og så bruger fremgangsmåden beskrevet ovenfor, men istedet indsætter dette kode: Private Sub Worksheet_Activate() Dim startCelle As String Dim slutCelle As String Dim extension As String Dim x As Range startCelle = "A1" slutCelle = "A30" extension = ".pdf" For Each x In Range(startCelle, slutCelle) If x.Value "" Then x.Value = x.Value + extension End If Next End Sub Så springger den de tomme celler over :) Mvh. Søren
--
#8
Pokerhval
Ny på siden
21-03-2011 14:50

Rapporter til Admin
Der mangler noget i koden ovenfor, forsvnadt under copy paste.. prøver lige igen: Private Sub Worksheet_Activate() Dim startCelle As String Dim slutCelle As String Dim extension As String Dim x As Range startCelle = "A1" slutCelle = "A30" extension = ".pdf" For Each x In Range(startCelle, slutCelle) If x.Value "" Then x.Value = x.Value + extension End If Next End Sub
--
#9
Pokerhval
Ny på siden
21-03-2011 14:51

Rapporter til Admin
Private Sub Worksheet_Activate() Dim startCelle As String Dim slutCelle As String Dim extension As String Dim x As Range startCelle = "A1" slutCelle = "A30" extension = ".pdf" For Each x In Range(startCelle, slutCelle) If x.Value "" Then x.Value = x.Value + extension End If Next End Sub
--
#10
Pokerhval
Ny på siden
21-03-2011 14:57

Rapporter til Admin
Hey kemoen Har sendt dig en mail istedet, det virker ikke når jeg poster koden her. mvh. Søren
--
#11
kemoen
Maxibruger
21-03-2011 18:19

Rapporter til Admin
Hey Søren, Modtog mailen og det virkede ganske fornuftigt som det skulle :-) - prøvede at svare på din mail 2 gange, men fik en postmaster error på dem begge, hmmm.. Men jeg lavede så selv en Elseif der på sådan at den ikke tilføjer hvis der allerede står .pdf ved brug af InStr funktionen :-) Endnu engang tusind tak for hjælpen, bedst af alt så ved at sidde og lege lidt med det i dag så endte jeg faktisk med at forstå koden også! (Y)
--
P5N-T Deluxe | Q6600 | 8800GT | Mushinkin DDR2 | Forlidt HDD :(
#12
Pokerhval
Ny på siden
22-03-2011 07:48

Rapporter til Admin
Igen, er kun glad for at kunne hjælpe :) Og super at du også har forstået koden :)
--
#13
stallemanden
HOL Moderator
22-03-2011 08:16

Rapporter til Admin
Skulle nogen finde på, og have søgt efter noget tilsvarende og falde over tråden, må i meget gerne smide den endelige løsning på fx. pastebin.com
--
Smerter? : http://paincare.dk[...] Lav din egen hol-setup-liste: http://hamdenkloge.dk[...]
#14
kemoen
Maxibruger
24-03-2011 11:32

Rapporter til Admin
#13 Jamen det skal da overvejers, men hvad tænker du på? er det i forhold til at koden ikke bliver vist korrekt her på hol eller? :-) Og i forhold til min primære post så kommer de jo med alverdens af gode ideer og eftersom jeg ikke helt kan klare skærene alene er der forhåbentlig et klogt hoved (søren) blandt jer hol'er! :-) Nu er det nemlig at noget af biblioteket bliver flyttet fra vores server til et søster selvskabs server, hvor ved at stien jo også bliver ændret så hvor at det før hed D:\1\2\3\4 skal det over og hede noget ala D:\2\3\4 Jeg har leget lidt med nogle InStr parameter i håbet om at kunne opsøge dataen, for derefter slette dataen ved brug af både trim og str parameter, men af en eller anden årsag vil den ikke for det meste er det en "Type mismatch" fejl jeg bliver kastet i hovedet... Så igen, nogle genier der ude? :-)
--
P5N-T Deluxe | Q6600 | 8800GT | Mushinkin DDR2 | Forlidt HDD :(
#15
kemoen
Maxibruger
25-03-2011 08:14

Rapporter til Admin
Fandt selv en løsning på mit nye problem, kunne klares med en simpel: Sub link_fix() With Columns("S:S") .Replace what:="D:\1\2\3\", Replacement:="D:\4\5\" End With End Sub
--
P5N-T Deluxe | Q6600 | 8800GT | Mushinkin DDR2 | Forlidt HDD :(

Opret svar til indlægget: VBA: ændring af data i en excel celle.

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning