Created
November 3, 2016 15:03
-
-
Save muzikovam/4daa0aef5a1c22bbcc748efba9e25e07 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sub Makro1() | |
' | |
' CTRL + t (t podle řetězce) | |
' | |
'Základem je soubor s 2 listy, kde jsou data v nepřehledné formě a nejde z nich lehce sestavit kontingenční tabulka | |
For i = 1 To 2 | |
nahraditMezery | |
pomocNaVVyh | |
Sheets.Add After:=ActiveSheet | |
Sheets(2).Select | |
vlozeniDat | |
vlozeniKonst | |
vlozeniCisel | |
If Sheets(1).Name = "stock" Then | |
VVyhStock | |
Else | |
VVyhSales | |
End If | |
If i = 1 Then | |
Presun | |
End If | |
Next i | |
MsgBox ("Hotovo ;-)") | |
End Sub | |
Sub nahraditMezery() | |
'Makro k snadnému pohybu po listu pomocí xlDown apod., k tomu se prázdná místa nahradí "0" | |
Range("A8").Select | |
Selection.CurrentRegion.Select | |
Selection.Replace What:="", Replacement:="0", LookAt:=xlWhole, _ | |
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _ | |
ReplaceFormat:=False | |
End Sub | |
Sub vlozeniDat() | |
'vkládání dat z jednoho listu do druhého | |
'nejdříve se vloží výrobky a k nim počet prodaných litrů na jednotlivých obchodech | |
'počet výrobků je proměnlivý a počet jednotlivých obchodů také | |
Dim pocetradku As Integer | |
Dim pocetsloupcu As Integer | |
Dim i As Integer | |
pocetradku = pocetradkuFC | |
pocetsloupcu = pocetsloupcuFC | |
Sheets(1).Activate | |
Range("A8:L8").Select | |
Range(Selection, Selection.End(xlDown)).Select | |
Selection.Copy | |
Sheets(2).Activate | |
Range("A1").Select | |
ActiveSheet.Paste | |
Range("A2:L2").Select | |
Range(Selection, Selection.End(xlDown)).Select | |
Selection.Copy | |
For i = 2 To pocetsloupcu | |
Range("A" & lastrow + 1).Select | |
ActiveSheet.Paste | |
Range("A2:L" & pocetradku + 1).Select | |
Selection.Copy | |
Next i | |
End Sub | |
Sub pomocNaVVyh() | |
' | |
' ke každému obchodu je přiděleno číslo, aby ve finální fázi bylo možné dohledat podle čísel jednotlivé obchody u prodejů | |
' | |
' | |
Range("M4").Select | |
ActiveCell.FormulaR1C1 = "1" | |
Range("N4").Select | |
ActiveCell.FormulaR1C1 = "2" | |
Range("O4").Select | |
ActiveCell.FormulaR1C1 = "3" | |
Range("M4:O4").Select | |
Selection.AutoFill Destination:=Range(Cells(4, 13), Cells(4, pocetsloupcuFC + 12)), Type:=xlFillDefault | |
End Sub | |
Function lastrow() | |
'poslední řádek v prvním sloupci | |
lastrow = ActiveWorkbook.ActiveSheet.Cells(1, 1).End(xlDown).Row | |
End Function | |
Function lastrowN() | |
'poslední řádek ve sloupci N | |
lastrowN = ActiveWorkbook.ActiveSheet.Cells(1, 14).End(xlDown).Row | |
End Function | |
Sub vlozeniKonst() | |
'vložení čísel do finální tabulky, podle kterých pak bude možno dohledat čísla jednotlivých obchodů k prodejům | |
Dim pocetradku As Integer | |
Dim pocetsloupcu As Integer | |
pocetradku = pocetradkuFC | |
pocetsloupcu = pocetsloupcuFC | |
Columns("A:A").Select | |
Application.CutCopyMode = False | |
Selection.Insert Shift:=xlToRight | |
Range("A1").Select | |
ActiveCell.FormulaR1C1 = "i" | |
Range("A2:A" & pocetradku + 1).Select | |
Selection.FormulaArray = "1" | |
For i = 2 To pocetsloupcu | |
Range("A" & lastrow + 1 & ":A" & lastrow + pocetradku).Select | |
Selection.FormulaArray = i | |
Next i | |
End Sub | |
Function pocetradkuFC() | |
'počet řádků od osmého řádků prvního sloupce(slouží k zjištění počtu výrobků) | |
pocetradkuFC = ActiveWorkbook.Sheets(1).Cells(8, 1).End(xlDown).Row - 8 | |
End Function | |
Function pocetsloupcuFC() | |
'počet sloupců od sedmého řádku třináctého sloupce (slouží k zjištění počtu obchodů) | |
pocetsloupcuFC = ActiveWorkbook.Sheets(1).Cells(7, 13).End(xlToRight).Column - 12 | |
End Function | |
Sub vlozeniCisel() | |
'vkládá prodeje | |
Dim pocetsloupcu As Integer | |
Dim i As Integer | |
pocetsloupcu = pocetsloupcuFC | |
Range("N1").Select | |
ActiveCell.FormulaR1C1 = "Data" | |
Sheets(1).Activate | |
ActiveSheet.Cells(9, 13).Select | |
Range(Selection, Selection.End(xlDown)).Select | |
Selection.Copy | |
Sheets(2).Activate | |
Range("N2").Select | |
ActiveSheet.Paste | |
For i = 2 To pocetsloupcu | |
Sheets(1).Activate | |
ActiveSheet.Cells(9, 12 + i).Select | |
Range(Selection, Selection.End(xlDown)).Select | |
Selection.Copy | |
Sheets(2).Activate | |
Range("N" & lastrowN + 1).Select | |
ActiveSheet.Paste | |
Next i | |
End Sub | |
Sub VVyhStock() | |
'vyhledává čísla obchodů na karte "Stock" | |
Columns("B:B").Select | |
Application.CutCopyMode = False | |
Selection.Insert Shift:=xlToRight | |
Range("B1").Select | |
ActiveCell.FormulaR1C1 = "Store No." | |
Range("B2").Select | |
ActiveCell.FormulaR1C1 = "=HLOOKUP(RC[-1],stock!R4:R8,5,0)" | |
Selection.AutoFill Destination:=Range("B2:B" & lastrow) | |
Range("B2:B" & lastrow).Select | |
Selection.Copy | |
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ | |
:=False, Transpose:=False | |
Columns("A:A").Select | |
Application.CutCopyMode = False | |
Selection.Delete Shift:=xlToLeft | |
End Sub | |
Sub VVyhSales() | |
'vyhledává čísla obchodů na karte "Sales" | |
Columns("B:B").Select | |
Application.CutCopyMode = False | |
Selection.Insert Shift:=xlToRight | |
Range("B1").Select | |
ActiveCell.FormulaR1C1 = "Store No." | |
Range("B2").Select | |
ActiveCell.FormulaR1C1 = "=HLOOKUP(RC[-1],sales!R4:R8,4,0)" | |
Selection.AutoFill Destination:=Range("B2:B" & lastrow) | |
Range("B2:B" & lastrow).Select | |
Selection.Copy | |
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ | |
:=False, Transpose:=False | |
Columns("A:A").Select | |
Application.CutCopyMode = False | |
Selection.Delete Shift:=xlToLeft | |
End Sub | |
Sub Presun() | |
' | |
' přesouvá karty | |
' | |
' | |
Sheets(3).Select | |
Sheets(3).Move Before:=Sheets(1) | |
End Sub | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment