eliminare randuri/celule goale

Închis
Apostolu
Mesaje: 285
Membru din: Joi Aug 20, 2009 4:05 pm

eliminare randuri/celule goale

Mesaj de Apostolu » Joi Mar 06, 2014 11:56 am

Am un tabel foarte mare cu multe randuri goale, intercalate cu randuri ce au date in celule.
Cum s-ar putea sterge, cu ajutorul VBA, randurile ce nu contin nici o data in celule.

Multumesc

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: eliminare randuri/celule goale

Mesaj de IPP » Joi Mar 06, 2014 12:11 pm

Buna ziua

Ati putea spune care e diferenta intre acest subiect si cel pe care l-ati mai deschis aici?
Pentru ca seamana a subiect dublat si sa vedem daca e cazul sa-l inchidem pe acesta. Sau sa-l stergem de tot.

Principial vorbind, eliminarea unei celule strica aranjarea informatiei in sensul in care restul celulelor se deplaseaza in sus/jos stanga/dreapta, dupa caz si va puteti trezi ca cnp-ul unei persoane, de exemplu va ajunge in dreptul numelui unei persoane care n-are nicio legatura cu el....

IP

alexxa1318
Mesaje: 25
Membru din: Lun Oct 03, 2011 12:47 pm

Re: eliminare randuri/celule goale

Mesaj de alexxa1318 » Joi Mar 06, 2014 12:20 pm

Bamuind ca este vorba de un tabel excel atunci aici gasesti raspunsul.

Apostolu
Mesaje: 285
Membru din: Joi Aug 20, 2009 4:05 pm

Re: eliminare randuri/celule goale

Mesaj de Apostolu » Joi Mar 06, 2014 6:00 pm

Multumesc pentru raspunsuri.
Este vorba de randuri de tabel, goale de la un capat la altul.
O sa incerc maco din linkul oferit !

Apostolu
Mesaje: 285
Membru din: Joi Aug 20, 2009 4:05 pm

Re: eliminare randuri/celule goale

Mesaj de Apostolu » Joi Mar 06, 2014 6:35 pm

Sunt in Word,promterul in tabel, accesez Tools, Macros, DeleteBlankRows, Run !
Raspunsul este :"Can't execute code in break mode"

Deschid Microsoft VB si dau run cu promterul in subrutina.
Raspunsul este: " Compile error: Method or data member not found"

Atentie, cred ca am uitat sa spun:
XP, Word 2003 !

Apostolu
Mesaje: 285
Membru din: Joi Aug 20, 2009 4:05 pm

Re: eliminare randuri/celule goale

Mesaj de Apostolu » Vin Mar 07, 2014 4:31 pm

Ok !
Intrucat ma presa timpul si n-am primit nicio solutie viabila, am folosit google ! :)
Dupa 15 minute in care am testat 5 scripturi am gasit unul care merge.

Deci:
1. Nu trebuie sa existe celule la care s-a facut "merge" pe verticala si ocupa 2 randuri !
Daca exista, "Break Table" si duceti in alt document restul de tabel(e).
2. Nu trebuie sa existe ABSOLUT nici un "caracter" ascuns sau nu, in celule.
Pentru curatirea tabelelor de ^13 folositi un macro care s-a postat aici: ClearTable.

Cod: Selectaţi tot

Sub ClearTable()
    Dim i As Long
    'Pregatire bucla prelucrare tabele
    For i = 1 To ActiveDocument.Tables.Count
       
        'Selecteaza tabelul pentru prelucrare
        ActiveDocument.Tables(i).Select
       
        'Pregateste selectia pentru FIND & REPLACE
        Selection.Find.ClearFormatting
        Selection.Find.Replacement.ClearFormatting
        With Selection.Find
            .Text = "^13"
            .Replacement.Text = ""
            .Forward = True
            .Wrap = wdFindStop  'Asigura oprirea cautarii dupa ce a terminat cu selectia curenta
            .Format = False
            .MatchCase = False
            .MatchWholeWord = False
            .MatchWildcards = False
            .MatchSoundsLike = False
            .MatchAllWordForms = False
        End With
        'Executia efectiva a inlocuirii pentru selectia data
        Selection.Find.Execute Replace:=wdReplaceAll
       
        'trece la urmatorul tabel
    Next i
End Sub

Macroul urmator elimina toate randurile goale din toate tablele din documentul dvs.

Sub DeleteEmptyRows_AllTables()

Dim oTable As Table
Dim oRow As Row

For Each oTable In ActiveDocument.Tables
For Each oRow In oTable.Rows
'Check whether row is empty - delete if it is
If Len(oRow.Range.Text) = oRow.Cells.Count * 2 + 2 Then
oRow.Delete
End If
Next oRow
Next oTable

End Sub
Intrucat functioneaza la mine pe Xp si Word 2003, sper ca o sa functioneze pe orice sistem si varianta de Word.

Cu scuzele de rigoare, ce s-a intamplat cu baietii, domnii, etc. aceia care administrau forumul de VB, acum un an ?
Ultima oară modificat Sâm Mar 08, 2014 7:01 pm de către Dr.Windows, modificat 1 dată în total.
Motiv: Adaugare taguri CODE

Închis

Înapoi la “Visual Basic for Application (VBA) - Intrebari tehnice”