Inlocuire capat de tabel cu mentierea valorilor corespondente

mihainiculae92
Mesaje: 15
Membru din: Vin Sep 16, 2016 1:43 pm

Inlocuire capat de tabel cu mentierea valorilor corespondente

Mesaj de mihainiculae92 » Lun Mar 25, 2019 12:40 pm

Salut,

Am de facut un fisier care sa ma ajute sa covertesc axele mai multor tabele:

Pana acum m-am descurcat sa generez si sa import tabelele din fisierul sursa, dar m-am blocat aici.

Imagine

Am mai multe tabele ca cel de mai sus la care se va schimba axa " 21, 22, 23, 24, 25 ,26 ,27 ,28 " in " 0 , 1 , 2, 3, 4, 5, 6 ,7 "

Am nevoie sa fac asta in mod automat tinand cont de urmatoarele:
- Numarul tabelelor si ordinea lor poate sa difere
- Axa ce devine 0 trebuie sa aiba intotdeauna pe toata linia 0
- Restul liniilor sa isi pastreze corespondenta pentru valorile de pe linie : 21 -> 1; 22 -> 2
- Exista cazuri in care axa 21, 22 ,23 .. se afla pe axa absciselor
- axa noua trebuie preluata din prima fila "CC"

Dupa coversie tabelul ar trebui sa arate asa:

Imagine

Ma puteti ajuta cu cateva sugestii pentru a aborda acest subiect?

Multumesc frumos!
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

H2SO4
Mesaje: 135
Membru din: Mar Apr 19, 2016 12:50 pm

Re: Inlocuire capat de tabel cu mentierea valorilor corespondente

Mesaj de H2SO4 » Lun Mar 25, 2019 5:22 pm

Salut,

In fisier ai in foaia CSV numerele 21 22 23 24 25 26 27 28
iar in foaia CC ai numerele 21 22 23 24 25 26 41 42
si ceri modificarea ... deci acele numere 41 si 42 sunt scrise din greseala?

Ai incercat sa inregistrezi un macro?
“Tell me and I forget, teach me and I may remember, involve me and I learn.”

mihainiculae92
Mesaje: 15
Membru din: Vin Sep 16, 2016 1:43 pm

Re: Inlocuire capat de tabel cu mentierea valorilor corespondente

Mesaj de mihainiculae92 » Lun Mar 25, 2019 6:43 pm

Salut,

Da, am scris din greseala 41,42, trebuia sa fie si acolo 27,28.

Nu, inca incerc sa ma gandesc cum pot face conversia pastrand linia corespunzatoare.

TudyBTH
Moderator
Moderator
Mesaje: 993
Membru din: Joi Feb 11, 2016 2:12 pm
Localitate: Cluj Napoca

Re: Inlocuire capat de tabel cu mentierea valorilor corespondente

Mesaj de TudyBTH » Lun Mar 25, 2019 8:00 pm

Buna,

Fie modelul prezentat de tine pentru conversie este gresit fie exemplele din capturi nu respecta regula
Deci:
- daca doresti ca axa 21 sa devina axa 0 iar valorile corespunzatoare axei 21 sa fie reduse la 0;0;..., folosesti o formula de genul
"axaNoua = axaVeche Mod 10 -1"
- daca doresti ca axa 21 sa devina axa 1 si sa fie adaugata o axa 0 inaitea ei co toate valorile 0 atunci inserezi axaNoua 0 dupa care faci conversia celorlalte cu formula
"axaNoua = axaVeche Mod 10"

Pentru un cod concret care sa faca si identificarea tabelelor ar fi mai util sa atasezi un fisier sursa in formatul original.
Am invatat sa inotam in apa, ca pestii
Am invatat sa zburam in aer, ca pasarile
A ramas doar sa invatam sa traim pe Pamant, ca Oamenii.

DR.ACCESS
Moderator
Moderator
Mesaje: 300
Membru din: Lun Sep 05, 2011 5:06 pm

Re: Inlocuire capat de tabel cu mentierea valorilor corespondente

Mesaj de DR.ACCESS » Joi Apr 04, 2019 1:26 pm

Buna,
sper ca am inteles bine cerinta.

Cod: Selectaţi tot

Sub redefinire_axe()
'

Dim rng As Range
    Dim i As Integer
    Dim r As Range
    

 'selectez toate celulele cu valori de pe coloana B
'pentru fiecare "coloana" de valori, verificam daca prima valoare e 21
' daca da, inlocuim toata lista cu valorile de la 1 la 8
' daca nu, ne deplasam pe cealalta axa

Set rng = Columns("b:b").SpecialCells(xlCellTypeConstants, 1)
For Each r In rng.Areas

 If r.Cells(1).Value = 21 Then
   For i = 1 To 8
   r.Cells(i).Value = i
    Next
ElseIf r.Cells(1).Offset(-1, 1).Value = 21 Then
   For i = 1 To 8
   r.Cells(1).Offset(-1, i).Value = i
    Next
    End If
Next

End Sub
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
D. Tanase
MCT, MCTS
MOS Master Instructor

Scrie răspuns

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