Stergere randuri sau coloane in mai multe tabele

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

Stergere randuri sau coloane in mai multe tabele

Mesaj de Apostolu » Joi Oct 08, 2015 12:29 pm

Cum se pot sterge anumite randuri sau coloane in mai multe tabele ?
De exemplu vreau sa sterg randul unu si coloana 5 din toate tabelele din document.
Sau doar colonana 5.

Word 2003
XP
Multumesc.

Dr.Windows
Moderator
Moderator
Mesaje: 4567
Membru din: Vin Iul 31, 2009 7:32 am

Re: Stergere randuri sau coloane in mai multe tabele

Mesaj de Dr.Windows » Vin Noi 20, 2015 2:16 pm

Incearca urmtorul cod (va sterge randul 2 si coloana 3 din toate tabelele)

Cod: Selectaţi tot

Sub StergeRandColoana()
    Dim RandDeSters As Integer
    Dim ColoanaDeSters As Integer
    Dim Contor As Integer
    
    RandDeSters = 2
    ColoanaDeSters = 3
    
    On Error Resume Next
    For Contor = 1 To ActiveDocument.Tables.Count
        ActiveDocument.Tables(Contor).Rows(RandDeSters).Delete
        ActiveDocument.Tables(Contor).Columns(ColoanaDeSters).Delete
    Next Contor
    On Error GoTo 0
End Sub

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

Re: Stergere randuri sau coloane in mai multe tabele

Mesaj de Apostolu » Vin Dec 25, 2015 9:10 pm

Nu functioneaza !
Si am avut presimtiri, dar nu am vrut sa ma dau expert :)
A fost un moment in istoria Word cand au gafat INGROZITOR la declararea tabelelor.
Adica, la tabelele de peste 3 RANDURI, nu se mai declara coloane, ci celule in rand.
(Si celulele din aceiasi coloana mai au si dimensiuni diferite ca latime, chiar daca nu se vede grafic. Daca se incearca redimensionarea coloanei exact asta este eroare=exista celule de dimensiuni diferite in coloana)
Am avut aceiasi problema la dimensionarea coloanelor unui tabel.
Au trebuit dimensionate celulele din rand si nu coloana.
Deci functioneaza la tabele de 3x3 celule si sterge coloana 1 si randul 1.
La tabele mai mai mari sterge doar randul 1.
Prin urmare codul trebuie modificat in sensul stergerii randului x si apoi a stergerii celulei y din randurile 1,2, 3, 4, etc. pentru a sterge coloana aleasa:)

Multumesc mult !

Dr.Windows
Moderator
Moderator
Mesaje: 4567
Membru din: Vin Iul 31, 2009 7:32 am

Re: Stergere randuri sau coloane in mai multe tabele

Mesaj de Dr.Windows » Dum Dec 27, 2015 12:31 pm

Tot ce este posibil, cand este vorba de tabele imbinate sau celule imbinate, nici macar Excelul nu mai reactioneaza cum trebuie, asa ca orice cod este posibil sa produca rezultate imprevizibile si trebuie testat pe o copie a documentului.

Poti incerca codul de mai jos, daca spui tu ca stergand celula cu celula vei obtine rezultatul dorit... desi cred ca in final tot la prelucrare manuala se va ajunge... ;)

Cod: Selectaţi tot

Sub StergeRandColoana()
    Dim RandDeSters As Integer
    Dim ColoanaDeSters As Integer
    Dim Contor As Integer
    Dim nRow As Integer
    
    RandDeSters = 13
    ColoanaDeSters = 3
    
    On Error Resume Next
    For Contor = 1 To ActiveDocument.Tables.Count
        ActiveDocument.Tables(Contor).Rows(RandDeSters).Delete
        'ActiveDocument.Tables(Contor).Columns(ColoanaDeSters).Delete
        For nRow = 1 To ActiveDocument.Tables(Contor).Rows.Count
            On Error Resume Next
            ActiveDocument.Tables(Contor).Cell(nRow, ColoanaDeSters).Delete
            On Error GoTo 0
        Next nRow
    Next Contor
    On Error GoTo 0
End Sub

Închis

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