macro aggiungi numero

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
john_cash
00sabato 6 febbraio 2016 10:45
Ciao a tutti.
Chiedo un aiuto per la modifica di questa macro che aggiuge il numero 10 a sx / dx di un valore in una cella.

Sub sAdd_10_sx_dx()

Dim cell As Range
On Error Resume Next
For Each cell In Selection

    cell.Value = "10 " & cell.Value & " 10"
    ' or
    'cell.Offset(0, 1).Value = "10 " & cell.Value '<<< incolla cella successiva
    
Next 'cell
On Error GoTo 0

End Sub



Funziona bene, ma se seleziono tutta la riga mette il numero 10 in tutte le celle, a me interessa solo le celle selezionate nel range A10:A100
Una suluto e grazie.
john
rollis13
00sabato 6 febbraio 2016 11:29
Prova così:
Option Explicit

Sub sAdd_10_sx_dx()
 
    Dim cell As Range
    On Error Resume Next
    For Each cell In Selection
        If Not cell.Column <> 1 And Not cell.Row < 10 And Not cell.Row > 100 Then
            cell.Value = "10 " & cell.Value & " 10"
        End If
    Next cell
    On Error GoTo 0
 
End Sub
john_cash
00sabato 6 febbraio 2016 12:46
Ciao rollis,
non funziona.
Ho corretto:

Sub sAdd_10_sx_dx()
  
    Dim cell As Range
    On Error Resume Next
    For Each cell In Selection
    
    
                 'If Not cell.Column <> 1 And Not cell.Row < 10 And Not cell.Row > 100 Then
                 'cell.Value = "10 " & cell.Value & " 10"
            
         If cell.Column = 1 Then
            cell.Value = "00 " & cell.Value & " 00"
            
        End If
    Next cell
    On Error GoTo 0    

End Sub



Adesso sorgono nuovi problemi.
La macro agggiunge 00 (ho cambiato da 10 a 00) all'inizio e alla fine e va bene ma se clicco ancora aggiunge altri 00 e non va bene.
Siccome ora ci sono celle che iniziano con 00 e altre con numeri tipo 10 - 20 - 30 - 40 ecc.. è possibile che la macro non aggiunga altri 00.
Spero di essermi spiegato.
john
rollis13
00sabato 6 febbraio 2016 15:44
Senza un esempio pratico dei dati nel tuo foglio e sapere dove metti la macro mi è difficile accettare un laconico "non funziona", sono abituato a testare quanto propongo. Evidentemente il mio Excel è diverso dal tuo [SM=g27833]
Per l'ulteriore variante che hai ora aggiunto propongo:
Option Explicit

Sub Add_00_sx_dx()
  
    Dim cell As Range
    Dim esclusi As Variant
    Dim x As Long
    Dim test As Boolean
    
    On Error Resume Next
     'combinazione caratteri a sx da testare
    esclusi = Array("00 ", "10 ", "20 ", "30 ", "40 ", "50 ")   'e così via ...
    For Each cell In Selection
         'verfica se la cella cade nel range colonna A tra la 10 e la 100
        If Not cell.Column <> 1 And Not cell.Row < 10 And Not cell.Row > 100 Then
            test = False
             'una delle stringhe di 3 caratteri è già presente ?
            For x = 0 To UBound(esclusi)
                If Left(cell.Value, 3) = esclusi(x) Then
                    test = True
                End If
            Next x
             'se manca metti la combinazione
            If test = False Then cell.Value = "00 " & cell.Value & " 00"
        End If
    Next cell
    On Error GoTo 0
  
End Sub
john_cash
00sabato 6 febbraio 2016 18:23
Ciao rollis.
Direi che è perfetta, dovrebbe essere esatto.
Per la conferma la devo provare lunedì in ufficio.
Intanto ti ringrazio.
john
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 17:37.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com