Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

[Excel] Makro koji će kopirati oblast po kriterijumu

  • 5 odgovora
  • 3.846 pregleda

Najnovija ↓

[Excel] Makro koji će kopirati oblast po kriterijumu 29.08.2007. u 13:54 · pre 233 meseca #1
kako da putem makroa kopiram rang I14:N493 ali samo do reda gde je ćelija N>-0.01, zatim da to kopira u rangu od A14:F493, i ispod ubaci tekst koji se nalazi u ćeliji M2. Napomena da velićina ranga A14:F nije unapred poznata.
Unapred hvala na pomoći.
Re: [Excel] Makro koji će kopirati oblast po kriterijumu 30.08.2007. u 10:29 · pre 233 meseca #3
Jedan (ne najoptimalniji) način je da ideš red po red u opsegu I14:N493, ispituješ da li je zadovoljen uslov i ako jeste kopiraš počevši od A14 nadole.
Kode sam razdvojio na proceduru koja kopira (da bude malo univerzalnije) i kod koji poziva ovu proceduru u tvom konkretnom slučaju
Code:

Sub MyCopy(srcRng As Range, dstRng As Range, Kriterijum As Double)
' Kopira iz zadatog opseca srcRng u odredišni opseg
' sve redove do reda u kojem je ispunjen kriterijum u poslednjoj koloni
' P. Jovanovic za elitesecurity.org
Dim r As Long
Dim rt As Long, ct As Long
Dim sht As Worksheet
Dim cl As Integer, lastcol As Integer

r = 1
rt = dstRng.Row
ct = dstRng.Column
Set sht = dstRng.Worksheet
lastcol = srcRng.Columns.Count 

Do While srcRng.Cells(1, lastcol).Offset(rowOffset:=r - 1) >= Kriterijum
    For cl = 1 To lastcol  ' prenosi vrednosti iz reda
      sht.Cells(rt, ct + cl - 1).Value = srcRng.Cells(r, cl).Value
    Next cl
    r = r + 1
    rt = rt + 1
Loop

End Sub


Poziv prethodne procedure
Code:

Sub Test()
  Dim sh As Worksheet
  Set sh = ActiveSheet
  Application.ScreenUpdating = False
  MyCopy sh.Range("I14:N493"), sh.Range("A14"), -0.01
  Application.ScreenUpdating = True
  ' Prepis teksta iz M2
  sh.Range("A14").End(xlDown).Offset(rowOffset:=1).Value = sh.Range("M2").Text
End Sub



Potpis
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Re: [Excel] Makro koji će kopirati oblast po kriterijumu 28.02.2012. u 11:43 · pre 178 meseci #4
Postovani forumasi, mozda sam pogrijesio temu ali u ovoj se radi o Excelu i VBA pa mozda mi neko da sugestiju gdje da nadjem rijesenje za ovo.
Googlao sam ali nisam nasao na forumu nista za ovaj problem.

Potreban je kod kako da svi ComboBox-ovi (kojih ima 10) na UserForm, vuku iste podatke sa Sheet-a "Imena"

Ubacio bih konkretan fajl xls ali ne znam kako se dodaje na poruku, oprostite...

Code:
Private Sub UserForm_Initialize()
Dim oneCell As Range
With Me.ComboBox1
For Each oneCell In ThisWorkbook.Sheets("Imena").Range("A1:A1000")
.AddItem CStr(oneCell.Value)
Next oneCell
End With
End Sub
Re: [Excel] Makro koji će kopirati oblast po kriterijumu 29.02.2012. u 09:49 · pre 178 meseci #5
Postovani Peco, hvala na brzom odgovoru. Pokusao sam naci odgovor na preporucenoj temi http://www.elitesecurity.org/t341737-0#2088658
ali nisam upsio primjeniti rjesenje na mom primjeru.
Evo sad dostavljam moj fajl, ne zamjerite sto nisam ukapirao kako funkcionise to na ovom forumu.
Ako neko ima rjesenje za naznaceni problem , molim javite se.
Srdacan pozdrav !
Re: [Excel] Makro koji će kopirati oblast po kriterijumu 29.02.2012. u 14:35 · pre 178 meseci #6
Rijesen problem.
Tako blizu a tako daleko :)
Za sve one koji uce kao ja :)
Evo cod

Code:
Private Sub UserForm_Initialize()

NameList1.List = Worksheets("Imena").Range("A1:A1000").Value
NameList2.List = Worksheets("Imena").Range("A1:A1000").Value
End Sub
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme