< návrat zpět

MS Excel


Téma: Přidání dat podle kritérií VBA rss

Zaslal/a 6.4.2025 8:19

FantasykZdravím, chtěl bych Vás požádat o radu.
Chtěl bych, aby se nakopírovali data z listu "data" do listu "List1" podle toho na jaké tlačítko kliknu.
Když kliknu na tlačítko např. "Data B", tak to vyhledá kde se nachází v A:O kde je písmeno B a pak nakopíruje pod něj do zeleného pole data z listu "data"

Sub data_A()
Dim i As Integer
Active = ActiveSheet.Name

A = WorksheetFunction.CountIf(Range("E1:Q2"), "A")

If A <> 1 Then
MsgBox "A neexistuje", vbCritical
Exit Sub
Else

i = WorksheetFunction.Match("A", Sheets(Active).Range("E1:Q2"), 1) 'tady se mi to sekne :-(

If WorksheetFunction.CountA(Range(Sheets(Active).Cells(16, i), Sheets(Active).Cells(18, i + 1))) > 0 Then
MsgBox "Pod A se nalézají data", vbCritical
Exit Sub
End If
'data
Sheets("Data").Range("O2:O4").Copy
Sheets(Active).Cells(16, i).PasteSpecial xlPasteValues

Sheets(Active).Select

End If
End Sub


viz příloha

děkuji moc krát za radu

Příloha: zip57383_wall_test.zip (20kB, staženo 1x)
Zaslat odpověď >

#057386
elninoslov
Jedná sa iba o 3 bunky E1, K1, Q1 (hodnota v zlúčených bunkách E1:E2 sa uchováva v E1), alebo aj inde môžu byť písmená?

Ak kopírujte Data!O2:O4 (to sú 3 riadky) do zelených polí. Tieto polia ale nie sú v stĺpci "i", ktorý nájdete hľadaním písmena.

Skúste tam ešte doplniť nejaké dáta do prílohy (lebo kontrolujete počet v oblasti zelená+1 stĺpec), a pridajte kópiu listu s požadovaným výsledkom, ak teda stlačím "Data B".

Jedná sa o totálnu prkotinu, len Vás tak pochopiť...

V žiadnom prípade nepoužívajte Copy, ale rovno Value2, a rovnako nie 3 takmer rovnaké makrá, ale jedno parametrizované. Všetko spravím ak pochopím...

EDIT:
Skúsil som sa vysomáriť z "popis vs makro". Viď príklad v prílohe.
Sub Data_X(Co As String)
Dim i As Integer
Dim rngZapis As Range

With wsObsluha
On Error Resume Next
i = WorksheetFunction.Match(Co, Array(.Range("E1"), .Range("K1"), .Range("Q1")), 0) - 1
If Err.Number <> 0 Then MsgBox Co & " neexistuje", vbCritical: Exit Sub
On Error GoTo 0

Set rngZapis = .Range("D16:D18").Offset(, i * 6)
End With

If WorksheetFunction.CountA(rngZapis) > 0 Then
If MsgBox("Pod " & Co & " se nalézají data." & vbNewLine & "Chcete je přepsat ?", vbCritical + vbYesNo) = vbNo Then Exit Sub
End If

rngZapis.Value2 = wsData.Range("O2:O4").Value2
End Sub

Sub data_A()
Data_X "A"
End Sub

Sub data_B()
Data_X "B"
End Sub

Sub data_C()
Data_X "C"
End Sub
Příloha: zip57386_wall_test.zip (23kB, staženo 1x)
citovat
#057388
Fantasyk
Zdravím,

děkuji přesně tak jsem to chtěl.

Zkoušel jsem si přidat další list a jiný Range, ale nějak mi to nejede více v přílozecitovat
#057391
Fantasyk
Zdravím, ještě jedna věc zkoušel jsem to dát do reportu a tam mi to nějak nefunguje.

Upravil jsem to tam a dal jsem tam více pozic odkud tahá data, ale nejede 7

EDIT: tam mi to nevyhledá ani směnu 7citovat
#057392
Fantasyk
Už jsem přišel na With ..
With Sheets(Active)

A už jsem na to přišel

děkujicitovat
#057394
elninoslov
Moje nervy, chlape ...

Aj niečo z popisu sedí s makrom a niečo z makra sedí s listom? Stĺpcom H myslíte F, posunom o 6 myslíte 5, riadkom 16 myslíte 17, a 19 je v skutočnosti 28. 14-imi riadkami je myslených 12, atď. Vzor nesedí o riadok s listami (2 vs 3 riadky na poruchy, pridal som do vzoru 1 riadok teda)! Počet vozíkov v strediskách má ísť skutočne do tých žltých polí a nie do polí "počet v." ???

Takže. Potrebujete danú funkčnosť pre každý list samostatne, a tých listov bude mrte veľa (každý deň)?

Dopredu sú určené smeny na celé roky na liste Database (E1,J1,O1), a Vy tam chcete tlačítkom ABC načítať dáta z inej smeny???

Prerobil som skoro všetko, čo si myslím, že treba. Aj vytváranie nových listov.
Ak by som mal k dispopzícii príkladné súbory "gluing-line_" a "Mixes_", pokúsil by som sa prerobiť aj load_data na verziu cez ADO (bez otvárania súboru), ak by to šlo.

Vyskúšajte, a prípadne doplnte info a prílohy. Ak je to citlivé, pošlite mi to na mail.
Příloha: zip57394_wall_report.zip (100kB, staženo 1x)
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje