Excel makro - prohození hodnot dvou buněk+vlození puvodních Vyřešeno

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

birgis
nováček
Příspěvky: 36
Registrován: březen 11
Pohlaví: Muž
Stav:
Offline

Excel makro - prohození hodnot dvou buněk+vlození puvodních

Příspěvekod birgis » 11 srp 2013 18:35

Ahoj,
prosím excel-machry o pomoc s makrem.
Makro by mělo umět u dvou označených buněk (vždy na jiném řádku) ke každé buňce vložit komentář (případně k existujícímu komentáři přidat) hodnotu buňky (text) a text ze sloupce A u druhé označené buňky a k tomu aktuální datum změny(vložení komentáře), a potom hodnoty označených buněk prohodit.

Výsledek by měl vypadat jako v příloze
Děkuju všem za pomoc

Vymena.xlsx
(10.52 KiB) Staženo 96 x


Budu rad i za částečnou pomoc (prohození buněk, nebo jen zápis hodnot do komentáře při změně,...))

Reklama
pavel.lasak
Level 2
Level 2
Příspěvky: 197
Registrován: duben 12
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Excel makro - prohození hodnot dvou buněk+vlození puvodn

Příspěvekod pavel.lasak » 13 srp 2013 21:01

Zda je označeno tento kód:

Kód: Vybrat vše

Dim Bunka As Range

For Each Bunka In Selection
     
    MsgBox "Vybraný řádek je " & Bunka.Row
    MsgBox "Vybraný sloupec je " & Bunka.Column
    'uloz do promene:  pokus = c.Row
   
Next c


pak použít další kódy na přečtení, zápis http://office.lasakovi.com/excel/vba-li ... excel-vba/
Více o kancelářském balíku MS Office na http://office.lasakovi.com/ (Word, Excel, PowerPoint, Access, Outlook, Project, OneNote)

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel makro - prohození hodnot dvou buněk+vlození puvodn

Příspěvekod cmuch » 13 srp 2013 21:25

Ja na to vytvořil makro, trochu delší :-) , ale zdá se funkční.
Buňky musí být vybrané pouze 2 a to přes ctrl, pokud tažením myši tak se to neprovede.

Kód: Vybrat vše

Sub ProhozeniKomentaru()

Dim Adresy, Adresa1, Adresa2 As Variant
Dim Coment1, Coment2 As String

  Adresy = Selection.Address
 
  If InStr(1, Adresy, ":", 1) = 0 And Selection.Count = 2 Then
    Adresa1 = Mid(Adresy, 1, InStr(1, Adresy, ",", 1) - 1)
    Adresa2 = Mid(Adresy, InStr(1, Adresy, ",", 1) + 1, Len(Adresy) - InStr(1, Adresy, ",", 1))
   
    If Range(Adresa1).Comment Is Nothing Then
      Range(Adresa1).AddComment
      Range(Adresa1).Comment.Text Text:="Owner:" & Chr(10) & Range(Adresa1).Value & " " & Cells(Range(Adresa1).Row, "A")
     Else
      Range(Adresa1).Comment.Text Text:="Owner:" & Chr(10) & Range(Adresa1).Value & " " & Cells(Range(Adresa1).Row, "A")
    End If
    If Range(Adresa2).Comment Is Nothing Then
      Range(Adresa2).AddComment
      Range(Adresa2).Comment.Text Text:="Owner:" & Chr(10) & Range(Adresa2).Value & " " & Cells(Range(Adresa2).Row, "A")
     Else
      Range(Adresa2).Comment.Text Text:="Owner:" & Chr(10) & Range(Adresa2).Value & " " & Cells(Range(Adresa2).Row, "A")
    End If
   
    Coment1 = Range(Adresa1).Comment.Text
    Coment2 = Range(Adresa2).Comment.Text
       
    Range(Adresa1).Comment.Text Text:=Coment2
    Range(Adresa2).Comment.Text Text:=Coment1
  End If
End Sub

birgis
nováček
Příspěvky: 36
Registrován: březen 11
Pohlaví: Muž
Stav:
Offline

Re: Excel makro - prohození hodnot dvou buněk+vlození puvodn

Příspěvekod birgis » 15 srp 2013 20:08

Ahoj,
já vím, že s budu vymýšlet moc, ale risknu,to:)
Po stisknutá klávesové zkratky by to mělo udělat několik kroků:
1: Načíst hodnoty z označení buněk
2: Ty hodnoty vložit do komentáře u stejné buňky (pokud už existuje u některé z vybraných komentář, tak přidat na další řádek)
3: Za tu hodnotu vložit jméno z řádku druhé označené buňky
4: Hodnoty v buňkách vzájemně prohodit

Je to soubor s plánovanými směnami a učel je ten, aby se zaznamenaly do komentářů prohozené směny (původní směna, s kým byl vyměněno, kdo vyměnil-místo Owner přihlášený uživatel-to se ale doplní samo při přidání komentáře)

Každopádně kdyby se ti do toho už nechtělo, tak moc děkuju i za tohle makro, třeba s pomocí dalších to dáme dohromady

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel makro - prohození hodnot dvou buněk+vlození puvodn

Příspěvekod cmuch » 16 srp 2013 06:48

Tak takto

Kód: Vybrat vše

Sub ProhozeniKomentaru()

Dim Adresy, Adresa1, Adresa2 As Variant
Dim Coment1, Coment2, HodnotaBunky1, HodnotaBunky2 As String

  Adresy = Selection.Address
 
  If InStr(1, Adresy, ":", 1) = 0 And Selection.Count = 2 Then
    Adresa1 = Mid(Adresy, 1, InStr(1, Adresy, ",", 1) - 1)
    Adresa2 = Mid(Adresy, InStr(1, Adresy, ",", 1) + 1, Len(Adresy) - InStr(1, Adresy, ",", 1))
   
    If Range(Adresa1).Comment Is Nothing Then
      Range(Adresa1).AddComment
    End If
    Range(Adresa1).Comment.Text _
            Text:=Range(Adresa1).Comment.Text & Chr(10) & "- " & Application.UserName & Chr(10) & Range(Adresa1).Value & " " & Cells(Range(Adresa2).Row, "A")
   
    If Range(Adresa2).Comment Is Nothing Then
      Range(Adresa2).AddComment
    End If
    Range(Adresa2).Comment.Text _
            Text:=Range(Adresa2).Comment.Text & Chr(10) & "- " & Application.UserName & Chr(10) & Range(Adresa2).Value & " " & Cells(Range(Adresa1).Row, "A")
   
    'Coment1 = Range(Adresa1).Comment.Text
    'Coment2 = Range(Adresa2).Comment.Text
       
    'Range(Adresa1).Comment.Text Text:=Coment2
    'Range(Adresa2).Comment.Text Text:=Coment1

    HodnotaBunky1 = Range(Adresa1).Value
    HodnotaBunky2 = Range(Adresa2).Value
   
    Range(Adresa1).Value = HodnotaBunky2
    Range(Adresa2).Value = HodnotaBunky1
  End If
End Sub

Naposledy upravil(a) cmuch dne 16 srp 2013 11:55, celkem upraveno 1 x.

birgis
nováček
Příspěvky: 36
Registrován: březen 11
Pohlaví: Muž
Stav:
Offline

Re: Excel makro - prohození hodnot dvou buněk+vlození puvodn

Příspěvekod birgis » 16 srp 2013 09:02

Tak už je to skoro ono jen jsem provedl malinké změny

Kód: Vybrat vše

Sub ProhozeniKomentaru()

Dim Adresy, Adresa1, Adresa2 As Variant
Dim Coment1, Coment2 As String

  Adresy = Selection.Address
 
  If InStr(1, Adresy, ":", 1) = 0 And Selection.Count = 2 Then
    Adresa1 = Mid(Adresy, 1, InStr(1, Adresy, ",", 1) - 1)
    Adresa2 = Mid(Adresy, InStr(1, Adresy, ",", 1) + 1, Len(Adresy) - InStr(1, Adresy, ",", 1))
   
    If Range(Adresa1).Comment Is Nothing Then
      Range(Adresa1).AddComment
    End If
    Range(Adresa1).Comment.Text Text:=Range(Adresa1).Comment.Text & Chr(10) & Application.UserName & Chr(10) & Range(Adresa2).Value & " " & Cells(Range(Adresa1).Row, "A")
   
    If Range(Adresa2).Comment Is Nothing Then
      Range(Adresa2).AddComment
    End If
    Range(Adresa2).Comment.Text Text:=Range(Adresa2).Comment.Text & Chr(10) & Application.UserName & Chr(10) & Range(Adresa1).Value & " " & Cells(Range(Adresa2).Row, "A")
   
    Coment1 = Range(Adresa1).Comment.Text
    Coment2 = Range(Adresa2).Comment.Text
       
    Range(Adresa1).Comment.Text Text:=Coment2
    Range(Adresa2).Comment.Text Text:=Coment1


[b]   
    Range(Adresa1).Value= Adresa2
    Range(Adresa2).Value= Adresa1


[/b]
  End If
End Sub



Jen jsem se ještě snažil udělat ten 4 bod, tedy hodnoty v buňkách vzájemně prohodit, ale dostal jsem se jen k tomu, že mi to vrací chybu, nebo vloží adresu buňky, nebo je v obou buňkách stejná hodnota.

cmuch
Level 4.5
Level 4.5
Příspěvky: 1547
Registrován: březen 11
Bydliště: Drsná Vysočina :D
Pohlaví: Muž
Stav:
Offline

Re: Excel makro - prohození hodnot dvou buněk+vlození puvodn

Příspěvekod cmuch » 16 srp 2013 11:57

Upraveno předchozí makro.
Vykomentoval jsem prohozeni komentářů, to tam asi být nemělo již od začátku.
Na konci je to prohození hodnot.

Ještě by asi bylo dobré ve vlastnostech komentářů zaškrtnout "automatickou velikost"

birgis
nováček
Příspěvky: 36
Registrován: březen 11
Pohlaví: Muž
Stav:
Offline

Re: Excel makro - prohození hodnot dvou buněk+vlození puvodn  Vyřešeno

Příspěvekod birgis » 18 srp 2013 21:19

Ahoj, tak jsem to konečně vyzkoušel a je to přesně to, co jsem potřeboval.Odkomentoval jsem a upravil ty komentáře(jen malé změny) ale je to super.
Moc děkuju za pomoc..Máš u mě panáka


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • EXCEL -jak otevřít 2 excel sobory abych je viděla současne a samostatně
    od Ketty02 » 30 srp 2024 21:19 » v Vše ostatní (sw)
    2
    4824
    od Riviera kid Zobrazit poslední příspěvek
    02 zář 2024 16:21
  • Přechod z Excel 21 na Excel 24
    od Snekment » 29 led 2025 13:46 » v Kancelářské balíky
    2
    12242
    od Snekment Zobrazit poslední příspěvek
    29 led 2025 15:05
  • Jaký z těchto dvou notebooků vybrat?
    od Speed_dead » 10 říj 2024 21:49 » v Rady s výběrem hw a sestavením PC
    11
    1968
    od Speed_dead Zobrazit poslední příspěvek
    12 říj 2024 21:07
  • Pohoda a excel Příloha(y)
    od brownwld » 06 kvě 2025 17:28 » v Kancelářské balíky
    1
    4805
    od atari Zobrazit poslední příspěvek
    07 kvě 2025 09:41
  • Excel - výpočet nočních hodin Příloha(y)
    od Uziv00 » 17 říj 2024 11:22 » v Kancelářské balíky
    3
    3363
    od lubo. Zobrazit poslední příspěvek
    24 říj 2024 00:00

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host