Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Unire celle in base ad una condizione

Ultimo Aggiornamento: 30/04/2020 13:59
Post: 11
Registrato il: 01/05/2002
Città: ACCIANO
Età: 28
Utente Junior
Excel 2013
OFFLINE
28/04/2020 22:15

Ciao ho bisogno di aiuto.
Ho un foglio Excel composto da testo e numeri.
La macro dovrebbe portare testi e numeri nel seguente ordine:
Il numero 1 (che è in cella B1) va' in cella A1, quindi prende il numero 1 "carattere apice" (nell'esempio in cella D1) lo porta in cella A1 e diventa 1,1. Nelle celle successive a partire da B1 vanno copiati i testi o numeri disposti su tre celle (nell'esempio E1, E2 e E3 che vanno ad occupare le celle B1, B2,B3)) o su due celle (nell'esempio G1 e G2 che vanno ad occupare le celle C1 e C2) quindi si prosegue fino a che non si trova un'altro carattere apice (nell'esempio il nr. 2 in cella N4). Tale 2 va' posto nella cella A4 con l'indicazione 1,2 e quindi si ripete l'operazione sopra descritta fin o all'apice 3....
Nelle celle della colonna A dovrebbero avere una formattazione del carattere normale e non più apice.
Nel foglio 2 vi è l'esempio del risultato finale.
La formattazione dei caratteri e numeri dei blocchi di tre o due va conservata.
Grazie anticipate
Pasquale
[Modificato da alvio56 29/04/2020 07:22]
pasquale
29/04/2020 16:00

Premesso che (il tutto) è molto complesso, non capisco due frasi:

1)Nelle celle della colonna A dovrebbero avere una formattazione del carattere normale e non più apice??? (Intendi 1,1 oppure 1, apice 1)
2)La formattazione dei caratteri e numeri dei blocchi di tre o due va conservata??? Quale formattazione ???
Post: 23
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
29/04/2020 16:50

ciao,
per completare la macro avrei bisogno di sapere se la riga 205 è vuota per errore o se è voluta (in questo caso diventa molto complicato trovare una soluzione)
inoltre ci sono delle celle che dovrebbero essere vuote ed invece hanno spazi e/o altri caratteri (R1), c'e' solo questo o anche altri?
---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
Post: 11
Registrato il: 01/05/2002
Città: ACCIANO
Età: 28
Utente Junior
Excel 2013
OFFLINE
29/04/2020 17:19

Ciao e grazie a tutti e due:
1) La riga 205 è vuota (io copio il testo da un programma e poi lo incollo con excel quindi potrebbe esserci qualche riga vuota. Potrei ovviare alla comparsa di righe vuote eliminandole manualmente prima di lanciare la "macro".
2) per quanto attiene la cella A1 (quindi la colonna A) è corretto 1,1 e così via senza numero apice.
3) nessuna formattazione per il resto delle celle (ho sbagliato a scrivere).
4) I segni sono questi "←" "→" "►" "►" "•" (in presenza del segno il blocco di tre celle verticali è sempre composto da due celle). Se occorre i segni potrebbero anche essere sostituiti con altri predeterminandoli.

In aggiunta:
Dopo aver eseguito la macro:
5) eliminerò tutti i numeri (ad eccezione di quelli che andranno a popolare la colonna A) che appaiono nella seconda cella del blocco di tre ad esempio il numero 2 presente in: "ἐπιγνῷς2" (cella G17); come eliminerò tutti i numeri presenti nei blocchi di 4 cifre presenti nella terza cella ad esempio il numero 1921 (cella G18).


[Modificato da alvio56 29/04/2020 17:28]
pasquale
Post: 24
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
30/04/2020 09:14

Ciao,
avrei creato questa macro, provala e fammi sapere

Devono essere prima eliminate righe completamente vuote eliminate

Sub compatta()
Dim cella As Range
Dim riga, riga2 As Integer
Dim colonna, colonna2 As Integer
Dim valore_b1 As String
Dim riga_ind As Integer
Dim valore_cella As String
Dim valore_cella_nasc As String
Dim LastRowIndex As Integer

Application.ScreenUpdating = False

valore_b1 = ActiveSheet.Range("b1").Value
valore_cella_nasc = ActiveSheet.Range("R1").Value
riga_ind = 1
colonna2 = 1
riga2 = 1

ActiveSheet.Range("b1").Value = ""

For riga = 1 To 1000 Step 3
For colonna = 1 To 26
If (ActiveSheet.Cells(riga, colonna).Value <> "" And ActiveSheet.Cells(riga, colonna).Value <> valore_cella_nasc) Then
If ActiveSheet.Cells(riga, colonna).Font.Superscript <> True Then

Sheets("Foglio2").Cells(riga2, colonna2).Value = ActiveSheet.Cells(riga, colonna).Value

Sheets("Foglio2").Cells(riga2 + 1, colonna2).Value = ActiveSheet.Cells(riga + 1, colonna).Value

Sheets("Foglio2").Cells(riga2 + 2, colonna2).Value = ActiveSheet.Cells(riga + 2, colonna).Value

colonna2 = colonna2 + 1
Else
colonna2 = 1
riga2 = riga_ind

Sheets("Foglio2").Cells(riga2, 1).Value = valore_b1 & "." & ActiveSheet.Cells(riga, colonna).Value
riga_ind = riga_ind + 3
colonna2 = colonna2 + 1
End If

End If

Next colonna
Next riga

Application.ScreenUpdating = True

End Sub
---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
Post: 12
Registrato il: 01/05/2002
Città: ACCIANO
Età: 28
Utente Junior
Excel 2013
OFFLINE
30/04/2020 12:08

Grazie duccio.73,
funziona benissimo, se usandola ho problemi scrivo.
Grazie ancora a rileggerci
Pasquale
pasquale
Post: 27
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
30/04/2020 12:13

Felice di essere stato utile, una curiosità... a cosa dovrebbe servire?
---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
30/04/2020 13:31

Ciao duccio.73
Suggerisco di non usare "As Integer, limitato a meno di 40.000", meglio il As Long (se è intero), Double se fosse con virgola

Inoltre se inserisci nel Forum un codice... scrivi
..codice..

CODE........codice.......\CODE

EDIT
In diversi forum, non si può fare (Itaglianesco)
Parentesi quadra aperta CODE e parentesi quadra chiusa
il codice ed ...
Parentesi quadra aperta \CODE e parentesi quadra chiusa
[Modificato da ABCDEF@Excel 30/04/2020 13:46]
Post: 13
Registrato il: 01/05/2002
Città: ACCIANO
Età: 28
Utente Junior
Excel 2013
OFFLINE
30/04/2020 13:49

Re:
duccio.73, 30/04/2020 12:13:

Felice di essere stato utile, una curiosità... a cosa dovrebbe servire?




Ciao, è stata molto utile, sto realizzando pian piano un Nuovo Testamento interlineare con testo Latino/Greco e analisi grammaticale che poi inserisco come "modulo aggiuntivo non commerciale" in un software biblico.

Grazie ancora
[Modificato da alvio56 30/04/2020 13:49]
pasquale
Post: 28
Registrato il: 27/12/2016
Città: SIENA
Età: 50
Utente Junior
Office 2019/Office 365
OFFLINE
30/04/2020 13:52

Re:
Grazie delle informazioni, colpa mia che non avevo letto bene le regole

ABCDEF@Excel, 30/04/2020 13:31:

Ciao duccio.73
Suggerisco di non usare "As Integer, limitato a meno di 40.000", meglio il As Long (se è intero), Double se fosse con virgola

Inoltre se inserisci nel Forum un codice... scrivi
..codice..

CODE........codice.......\CODE

EDIT
In diversi forum, non si può fare (Itaglianesco)
Parentesi quadra aperta CODE e parentesi quadra chiusa
il codice ed ...
Parentesi quadra aperta \CODE e parentesi quadra chiusa




---
pensa bene a quello che cerchi, allega un file di esempio, prova il registratore di macro, imparerai e potresti già avere la soluzione
30/04/2020 13:59

>>>non avevo letto bene le regole
Non sono "regole", solo il Forum che accetta caratteri strambi
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Celle piene di una determinata colonna (5 messaggi, agg.: 28/04/2017 10:44)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 01:10. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com