Pagina precedente | 1 | Pagina successiva
Facebook  

Macro allinea testo destra, sinistra, centro

Ultimo Aggiornamento: 15/02/2018 19.16
Autore
Stampa | Notifica email    
Post: 66
Registrato il: 03/05/2016
Città: MILANO
Età: 44
Utente Junior
Excel 2011
OFFLINE
13/02/2018 11.20

ciao ciao


In colonna “H” è presente un testo che si dovrebbe allineare al variare dei valori presenti sulla stessa riga contenuti nei range E8:E50 e K8:K50


Esempio:

La cella K10 contiene un valore superiore a 0, il testo presente nella colonna “H” dovrebbe allinearsi a destra.

La cella E21 contiene un valore superiore a 0, il testo presente nella colonna “H” dovrebbe allinearsi a sinistra.

Le celle E29 e K29 contengono un valore superiore a 0, il testo presente nella colonna “H” dovrebbe allinearsi al centro.

I valori contenuti nei due range ( “E e K”) saranno restituiti da formule e con ciò dovrebbe aggiornarsi in automatico ogni qualvolta un valore cambia


grazie grazie

un saluto
Simone
[Modificato da melaverde74 13/02/2018 11.21]
macro per foglio attivomacro08/05/2018 16.38 by aquila-67
MACRO EXCELLmacro07/05/2018 08.26 by MAURIZIO1989
VBA, macro aggiornamento automatico collegamenti ipertestuali presenti in un foglio Excelmacro21/05/2018 10.45 by raffaele1953
Post: 2.673
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
ONLINE
13/02/2018 17.30

Potresti provare con questo Codice VBA:
Option Explicit

Sub Test()
Application.ScreenUpdating = False
Dim URc As Long, x As Long

    URc = Range("H" & Rows.Count).End(xlUp).Row
        Range(Cells(8, 8), Cells(URc, 8)).HorizontalAlignment = xlCenter
        For x = 8 To URc
            If Cells(x, 5) <> "" Or Cells(x, 11) <> "" Then
                If Cells(x, 5) <> "" Then Cells(x, 8).HorizontalAlignment = xlLeft
                If Cells(x, 11) <> "" Then Cells(x, 8).HorizontalAlignment = xlRight
                If Cells(x, 5) <> "" And Cells(x, 11) <> "" Then Cells(x, 8).HorizontalAlignment = xlCenter
            End If
        Next x
Application.ScreenUpdating = True
End Sub


ma, questa volta, non rispondere:


ho quasi risolto ....1000 grazie per l'aiuto [SM=x423017]


come in :

http://www.freeforumzone.com/d/11282592/orari-a-tendina-dinamici/discussione.aspx

Piuttosto, rendici edotti della tua soluzione.


Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 654
Registrato il: 16/08/2015
Utente Senior
Excel 2016 64bit
ONLINE
13/02/2018 17.48

Un saluto a tutti.
Arrivo tardi ma ormai ho dedicato un po' di tempo così pubblico comunque la mia versione di macro che potrebbe bastare così (da mettere in un modulo vba, basta anche nel modulo del foglio interessato):

Option Explicit

Sub allinea()

    Dim x As Integer

    For x = 8 To 50
        If Range("E" & x) > 0 And Range("K" & x) > 0 Then
            Range("H" & x).HorizontalAlignment = xlCenter
        ElseIf Range("E" & x) > 0 Then Range("H" & x).HorizontalAlignment = xlLeft
        ElseIf Range("K" & x) > 0 Then Range("H" & x).HorizontalAlignment = xlRight
        End If
    Next x

End Sub
[Modificato da rollis13 13/02/2018 17.50]
Post: 66
Registrato il: 03/05/2016
Città: MILANO
Età: 44
Utente Junior
Excel 2011
OFFLINE
13/02/2018 20.35

Innanzitutto mi scuso per la “ codarda “ risposta data nel post evidenziato da Giuseppe
Il fatto é che io la soluzione non l’ho mai trovata [SM=x423052] [SM=x423052]
La verità é che avevo le idee poco chiare di quello che volevo realizzare e visto il lavoro che aveva già fatto Giuseppe ero imbarazzato a dire che avevo abbandonato il progetto
Prometto che la prossima volta sarò più sincero comunque ringrazio di avermi ririsposto

Per quello che riguarda la presente macro ringrazio entrambi l’ho provata ma riesco a farla funzionare solo se digito il valore direttamente in colonna mentre se il valore è restituito da una formula non reagisce.

a voi funziona?


Grazie ancora
Un saluto
Simone
Post: 2.676
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
ONLINE
13/02/2018 21.38

Buona sera, melaverde74;
per il precedente post non c'è alcun problema, quello che volevo semplicemente dire è che le soluzioni andrebbero condivise in Forum.

Detto ciò, direi che i Codici VBA dovrebbero funzionare anche con Formule; allego il File con il quale ho condotto i miei test.



A disposizione.

Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 655
Registrato il: 16/08/2015
Utente Senior
Excel 2016 64bit
ONLINE
13/02/2018 23.24

Nella mia manca solo il riposizionamento al centro in quei casi in cui, una volta spostato il testo a destra o sinistra, poi a seguito di ulteriori calcoli ci si trova nella condizione di ripristinare la posizione centrale con entrambe le celle valori vuoti o zero.
Basta inserire questa riga di codice subito dopo quella con il Dim:

Range("H8:H50").HorizontalAlignment = xlCenter
[Modificato da rollis13 13/02/2018 23.31]
Post: 67
Registrato il: 03/05/2016
Città: MILANO
Età: 44
Utente Junior
Excel 2011
OFFLINE
14/02/2018 14.40

Grazie Giuseppe per il tuo lavoro e il file.

Il fatto è che le formule non sono contenute in colonna “H” bensi nelle colonne gialle “E e K”
Ho fatto un file con un semplice esempio per far capire quello che vorrei ottenere.

La macro dovrebbe attivarsi in automatico ogni qualvolta che nelle colonne gialle E e K subiscono un cambiamento di valore dato dal risultato della formula il cui valore è dato dalla selezione in colonne “C e M”.
Ho provato ad inserire queste due righe ma non funziona lo stesso

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E:E,K:K")) Is Nothing Then Test
End Sub

Sapresti dirmi se c’è una soluzione per questo problema?

Ho provato a fare delle prove anche con la macro di rollis ( che ringrazio ) ma non sono riuscito a trovare una soluzione

grazie
Simone
Post: 2.679
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
ONLINE
14/02/2018 15.33

Buona giornata, Simone;
mi era sorto il dubbio che le Formule fossero in Colonna "E" e "K".
Il File in allegato prevedeva esattamente questo tipo di struttura; non mi sono preoccupato più di tanto perchè ho visto che la Procedura funzionava comunque.

L'unica differenza tra il tuo File proposto in Risposta #7 e il mio sta proprio nella Formula utilizzata.

Nel tuo File, in Cella C8 utilizzi la Formula:
 =SE(C8=1;$A$1;SE(C8=2;$A$2;SE(C8=3;$A$3;SE(C8=4;$A$4;SE(C8=5;$A$5;" ")))))


mentre nel mio File ho utilizzato la Formula:
 =SE($C8="";"";CERCA.VERT($C8;$A$2:$B$50;1;0)) 


Analogamente per le Formule in Colonna "K"

Ora, vedi tu se ritieni di dover mantenere la struttura della tua Formula dovresti semplicemente togliere lo spazio compreso tra " ".

Voglio dire la tua Formula diventerebbe:

 =SE(C8=1;$A$1;SE(C8=2;$A$2;SE(C8=3;$A$3;SE(C8=4;$A$4;SE(C8=5;$A$5;"")))))





A disposizione.

Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 68
Registrato il: 03/05/2016
Città: MILANO
Età: 44
Utente Junior
Excel 2011
OFFLINE
14/02/2018 16.21

Grazie mille Giuseppe.
Sì certo, la tua formula andrebbe anche bene ma mi allinea comunque solo, se dopo aver inserito il valore in colonna C o L, schiaccio sul pulsante Test e non in automatico.

saluti Simone
Post: 2.680
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
ONLINE
14/02/2018 18.11

Buona sera, Simone;
per avere l'allineamento automatico dovresti dirmi quando vuoi che il Codice intervenga:

-    dopo linserimento di un Valore in Colonna "C"?
-    dopo linserimento di un Valore in Colonna "M"?
o quando?




A disposizione.

Buona serata.

Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 2.681
Registrato il: 03/04/2013
Utente Veteran
Excel 2000 - 2013
ONLINE
14/02/2018 20.57



Giuseppe

Windows XP - Excel 2000
Windows 10 - Excel 2013
Post: 69
Registrato il: 03/05/2016
Città: MILANO
Età: 44
Utente Junior
Excel 2011
OFFLINE
15/02/2018 19.16

GRAZIE GIUSEPPE ...ORA SI ATTIVA COME DESIDERATO [SM=x423030]


saluti

Simone
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]
macro doppio click nascondi testo (10 messaggi, agg.: 15/10/2017 21.12)
Macro allinea testo (6 messaggi, agg.: 05/05/2017 13.50)
Home Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 17.30. Versione: Stampabile | Mobile | Regolamento Privacy
FreeForumZone [v.4.4.2] - Copyright © 2000-2018 FFZ srl - www.freeforumzone.com