Ja det er korrekt Det der står i c6 er efter ændring: =[hvidovrenorden.XLS]Total!C10+[hvidovrekontinent.xls]Total!C10+'[hvidovrelogistik.xls]service afd.'!E14
Tilsvarende i d6 =[hvidovrenorden.XLS]Total!d10+[hvidovrekontinent.xls]Total!d10+'[hvidovrelogistik.xls]service afd.'!g14
Jeg fandt selv en løsning. Det er ikke kønt, men det virker.
Jeg måtte ændre formlerne så der stod $E. -> Kan man ikke fjerne mit søgefelt + kolonnebetegnelsen
Hvordan undgår jeg "select", den burde kunne laves med en LOOKUP eller lign. Jeg syntes det er besværlig at referere til de rigtige celler
Forslag til forbedringer ønskes ActiveCell.Select Set celle = ActiveCell.Offset(0, 0).Range("A1") formel = ActiveCell.Formula soeg = "service afd.'!$E" kolonne = celle.Column kolonne = ((kolonne - 1) * 2) + 1 Select Case kolonne Case 1 kolonne = "A" Case 2 kolonne = "B" Case 3 kolonne = "C" Case 4 kolonne = "D" Case 5 kolonne = "E" Case 6 kolonne = "F" Case 7 kolonne = "G" Case 8 kolonne = "H" Case 9 kolonne = "I" Case 10 kolonne = "J" Case 11 kolonne = "K" Case 12 kolonne = "L" Case 13 kolonne = "M" Case 14 kolonne = "N" Case 15 kolonne = "O" Case 16 kolonne = "P" Case 17 kolonne = "Q" Case 18 kolonne = "R" Case 19 kolonne = "S" Case 20 kolonne = "T" Case 21 kolonne = "U" Case 22 kolonne = "V" Case 23 kolonne = "W" Case 24 kolonne = "X" Case 25 kolonne = "Y" Case 26 kolonne = "Z" End Select
Når man først ved hvad der skal ændres i formlerne (det ved jeg ikke), er det blot at lave en løkke, der gennemgår samtlige celler der ønskes ændret, og udskifter teksten
Her et eksempel: Celle A1 indeholder : julen er dejlig Celle A2 indeholder : det er snart påske Celle A3 indeholder : bla bla
Kører du macroen Udskift_påske_til_jul, vil indholdet skifte til
Celle A1 indeholder : julen er dejlig Celle A2 indeholder : det er snart jul Celle A3 indeholder : bla bla
Idet Udskift_påske_til_jul:
Sub Udskift_påske_til_jul() Dim RækkeNr As Long Dim KolonneNr As Integer Dim gammelFormel As String Dim nyFormel As String KolonneNr = 1 '=Kolonne A For RækkeNr = 1 To 3 'Række 1 til 3 gammelFormel = Worksheets("Ark1").Cells(RækkeNr, KolonneNr).FormulaR1C1 If InStr(1, gammelFormel, "påske") > 0 Then nyFormel = Replace(gammelFormel, "påske", "jul", , , vbTextCompare) Worksheets("Ark1").Cells(RækkeNr, KolonneNr).FormulaR1C1 = nyFormel End If Next RækkeNr End Sub
Ovenstående macro er lige til at rette i, så det passer specifikt til dit behov - jeg ved ikke hvilke celler du vil udskifte, samt hvad du vil udfskifte - men som sagt - det er bare at tilpasse macroen:o)
PS: I din egen løsning (som du postede efter jeg havde påbegyndt mit svar, og som jeg derfor ikke havde set da jeg svarede), har du en Select Case på en halv meter, som du kan slette og erstatte med følgende kode:
Følgende har to begrænsninger (som jeg tror du kan leve med) Antagelse 1: service afd.'! forekommer kun en gang pr formel Antagelse 2: Du kommer ikke længere ud end kolonne Z
Sub RetFormel() Range("C6").Select Selection.CurrentRegion.Select 'søger for at alle celler, der "støder op til" "C6" blive gennemsøgt For Each cl In Selection.Cells s = cl.Formula txt = "service afd.'!" lng = Len(txt) If Left(s, 1) = "=" Then i = Application.WorksheetFunction.Search(txt, s) If i > 0 Then c = Chr((cl.Column - 1) * 2 + Asc("A")) cl.Formula = Left(s, i + lng - 1) & c & Right(s, Len(s) - i - lng) End If End If Next End Sub
- Antagelse 1: service afd.'! forekommer kun en gang pr formel Dette er ikke korrekt, den kan forekomme flere gange pr formel, i øjeblikket 6 gange nogle steder
- Selection.CurrentRegion.Select - 'søger for at alle celler, der "støder op til" "C6" blive gennemsøgt Hvad hvis der ikke står noget i d6, men i e6
Nu spørger jeg lige forsigtigt: Du vil have udskiftet en del af indholdet i nogle celler med et andet indhold. Jeg har lavet en sub der kan præcis det. Hvad er problemet? :o)
Hvis du vil have, jeg arbejder lidt videre med løsningen, skriv din email.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.