Stránka 1 z 1

Doplnění některých údajů z listu na list

Napsal: 26 led 2012 07:57
od cmuch
Ahoj,
Chtěl bych poprosit o radu.
Mám dokument ve kterém se do listu1 zadávají údaje, ale k některým údajů není potřeba vypisovat vše.
A na listu2 jsou pomocná data ve kterých je zadáno co se má automaticky vyplnit když se zadá na listu1 nějaké měření.
A já bych potřeboval aby se ty data automaticky přepsali z příslušného řádku listu2 na příslušný řádek listu1

Děkuji za Vaše nápady.

Re: Doplnění některých údajů z listu na list

Napsal: 26 led 2012 08:34
od Azuzula
Chce to trochu upřesnit. Není mi jasné, zda jsou pomocná data stále stejně rozložena jako v demu? Pokud ano, tak by to bylo příliš snadné, takže asi nebudou...
Tak mě napadá že by to šlo makrem přes cyklus a kontrolovat prázdné buňky a doplňovat data z druhého listu do prázdných buněk.

Re: Doplnění některých údajů z listu na list

Napsal: 26 led 2012 09:44
od cmuch
Ano, ty názvy těch sloupcu budou stejne na obou listech.
Udělání přes cyklus mi je také jasné, ale nevím jak mám vyhledat určité měření z listu1 na listu2.

Re: Doplnění některých údajů z listu na list

Napsal: 26 led 2012 11:13
od Azuzula
To měření bude mít nějaký název? Pak by se to dalo hledat podle toho názvu (nebo nějakého ID)

Re: Doplnění některých údajů z listu na list

Napsal: 26 led 2012 12:21
od cmuch
Já potřebuji když se do slupce měrění na listu1 něco napíše aby se zkontroloval sloupec měření na listu2
a pokud je na nějakém řádku ten text z listu1 tak aby se doplnily udaje z listu2 (obsazené bunky na příslušném řádku) na list1.

Re: Doplnění některých údajů z listu na list

Napsal: 26 led 2012 12:56
od Azuzula
To "něco" je něco konkrétního v určité buňce a nebo to je vždy různý zápis v různých buňkách?

Re: Doplnění některých údajů z listu na list

Napsal: 26 led 2012 13:10
od cmuch
to něco bude vždy text co je na listu2 ve sloupci měření, ale může se stát že přibyde text i jiný.

Re: Doplnění některých údajů z listu na list

Napsal: 26 led 2012 14:13
od Azuzula
Ok, budeme se tedy držet sloupce "Měření" jakožto vodítka a zároveň něčeho co můžeme hledat v druhém listu. Zatím bez toho dalšího textu, ale to potom už určitě zvládneš doupravit.

Kód: Vybrat vše

Sub najdi_a_dopln()

Dim data As Variant
Dim bunka1 As Variant
Dim bunka2 As Variant
Dim bunka3 As Variant
Dim bunka4 As Variant
Dim bunka5 As Variant
Dim bunka11 As Variant
Dim bunka12 As Variant
Dim bunka13 As Variant
Dim bunka14 As Variant
Dim bunka15 As Variant

'uloží zapsané hodnoty k porovnání z List1
data = Cells(ActiveCell.Row, 3) 'sloupek 3 "Měření"
'není tedy nutné mít označenou buňku přímo s tím hledaným textem
'stačí označit řádek v kterém budeme hledat

bunka1 = Cells(ActiveCell.Row, 1) 'sloupek 1
bunka2 = Cells(ActiveCell.Row, 2) 'sloupek 2
bunka3 = Cells(ActiveCell.Row, 4) 'sloupek 4
bunka4 = Cells(ActiveCell.Row, 5) 'sloupek 5
bunka5 = Cells(ActiveCell.Row, 6) 'sloupek 6

Sheets("List2").Select

For a = Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1 'prohledá každou buňku ve sloupci od spodu
    If Cells(a, 3) = data Then
        Cells(a, 3).Select
        'uloží nalezené hodnoty k porovnání z List2
        bunka11 = Cells(ActiveCell.Row, 1)
        bunka12 = Cells(ActiveCell.Row, 2)
        bunka13 = Cells(ActiveCell.Row, 4)
        bunka14 = Cells(ActiveCell.Row, 5)
        bunka15 = Cells(ActiveCell.Row, 6)
        Sheets("List1").Select
            'když bude buňka na List1 prázdná, tak se vloží hodnota z list2
            If bunka1 = "" Then Cells(ActiveCell.Row, 1).Value = bunka11
            If bunka2 = "" Then Cells(ActiveCell.Row, 2).Value = bunka12
            If bunka3 = "" Then Cells(ActiveCell.Row, 4).Value = bunka13
            If bunka4 = "" Then Cells(ActiveCell.Row, 5).Value = bunka14
            If bunka5 = "" Then Cells(ActiveCell.Row, 6).Value = bunka15
    End If
    Next a
End Sub



PS: nejsem profík a možná by to šlo i zjednodušit, ale nevím jak. Ale funguje to snad tak jak je třeba.

Re: Doplnění některých údajů z listu na list  Vyřešeno

Napsal: 30 led 2012 19:50
od cmuch
Ahoj,
děkuji za makro, ale není to přesně ono.
Zplodil jsem to co by bylo lepší, ale nejde mi nějak udělat aby to kopírovalo z listu na list, asi mám někde chybu :D
Mám to umístěné na list1

Kód: Vybrat vše

Private Sub Worksheet_Change(ByVal Target As Range)

Dim SRow As Range, CRow As Range
Dim RCll As Integer
Dim NmMereni As String
Dim a As Integer
Dim Cll2 As Range
Dim RCll2 As Integer, CCll2 As Integer

'test vyberu bunky
  If Not Intersect(Target, Me.Range("A:F")) Is Nothing Then
     ' zdrojovy radek
     Set SRow = Me.Range("A1:F1").Offset(Target.Row - 1, 0)
     RCll = SRow.Row
     ' nazev
     NmMereni = SRow.Columns(3).Value

     For a = Sheets("List2").Cells(Rows.Count, 3).End(xlUp).Row To 1 Step -1 'prohledá každou buòku ve sloupci od spodu
        If Sheets("List2").Cells(a, 3) = NmMereni Then
            Set CRow = Sheets("List2").Range("A" & a & ":F" & a)
                ' zjistit, zda se ma neco prepsat
            For Each Cll2 In CRow.Cells
                If Not IsEmpty(Cll2) Then
                     CCll2 = Cll2.Column
                     RCll2 = Cll2.Row
                     'toto nevim jak napsat
                     Sheets("List1").Cells(CCll2 & RCll) = Cll2
                End If
            Next Cll2
            Set Cll2 = Nothing
        End If
    Next a
 End If
   
End Sub

Děkuji za popostrčení.

--- Doplnění předchozího příspěvku (30 Led 2012 20:05) ---

Tak jsem to vyřešil
toto:

Kód: Vybrat vše

 'toto nevim jak napsat
                     Sheets("List1").Cells(CCll2 & RCll) = Cll2

jsem nahradil timto:

Kód: Vybrat vše

'toto nevim jak napsat
                     Application.EnableEvents = False
                     Sheets("List1").Cells(RCll, CCll2) = Cll2
                     Application.EnableEvents = True


jak je vidět v zápisu jsem měl chybu jak hrom :oops: