Visualizzazione dei risultati da 1 a 9 su 9

Discussione: Macro copia e incolla

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    5

    Macro copia e incolla

    Salve a tutti,
    sono un nuovo iscritto che da poco si sta esercitando a svolgere macro per semplificarmi il lavoro.
    Premetto subito che non sono molto afferrato sull'argomento (e la cosa mi dispiace molto),
    ho "scopiazziato" qui sul forum per arrivare a scrivere una macro che mi fa alcune cose (nascondere e visualizzare colonne).
    Ora sono arrivato al punto di chiedere aiuto ai veri professionisti, visto che non riesco ad andare avanti.
    Vi spiego brevemente:
    Ho un foglio di lavoro (foglio1) nel quale ci sono un numero non fisso di colonne e righe,
    le prime 4 righe sono riservate a titoli ecc..
    la riga 5 e quella prototipo.
    con una macro nascondo le colonne che a cui non devo cambiare i dati.
    Es col B,D,E
    sulle restanti inserisco i dati per un numero non precisato di righe ma che terminano tutte sulla stessa riga es. 890
    Da qui in poi chiedo:
    un pulsante che mi riempia le celle delle colonne nascoste con il valore che è nella cella 5 della stessa colonna.
    Es. col B cella 5 contiene Pippo
    Col D cella 5 contiene poppo
    una volta schiacciato il pulsante la stringa Pippo si deve copiare fino alla cella 890 della col. B
    poppo fino alla cella 890 della col. D
    ecc. Ecc.
    Una volta riempite tutte le celle delle colonne attive devo raggruppare il testo di ogni riga per avere una stringa senza spazzi.
    Se qualcuno può aiutarmi a farlo ne sarei felicissimo visto che sono giorni che provo a farlo senza risultati
    ringrazio anticipatamente chiunque si interessi al mio caso
    grazie
    saluti



  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    potresti iniziare con la funzione "registra macro" in modo da creare la tua macro registrando le operazioni che fai
    successivamente puoi modificare la macro così creata, se ti serve farlo

    puoi poi inserire un'immagine, una clip art, una forma oppure una smart art, a cui associ il nome della macro da eseguire

    puoi avere (ovviamente) anche più elementi a cui associ macro diverse per parcellizzare il lavoro

    se hai ancora problemi posta anche un po' di codice

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    5
    Ciao e grazie per il tuo consiglio,
    ma registrando una macro avrei solo una parte definita (range) dove copiare e incollare,
    Help me.....

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    sulle restanti inserisco i dati per un numero non precisato di righe ma che terminano tutte sulla stessa riga es. 890
    mi sembra di capire che devi identificare l'ultima riga utile,
    se la colonna di riferimento (esempio A), non contiene celle vuote, puoi fare così
    codice:
    Sheets('nome del foglio').Select
    Columns("A:A").Select
    UltimaRiga = ActiveSheet.Cells.Find(What:="", _
      SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row
    Range("B5").Select
    Selection.Copy
    Range("B6:B" & UltimaRiga).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("A5").Select
    Una volta riempite tutte le celle delle colonne attive devo raggruppare il testo di ogni riga per avere una stringa senza spazi.
    registrati
    seleziona colonna (o range di celle)
    "trova e seleziona" + "sostituisci"
    così ottieni il pezzetto di macro

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    5
    Ciao, grazie per l'esempio .
    Il problema e che ---UltimaRiga = ActiveSheet.Cells.Find(What:="", _
    SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row---
    non mi va a cercare l'ultima riga del foglio di lavoro
    es. la mia ultima riga e la 20 sulla colonna G
    la macro punta alla riga 23 ...poi il resto funziona alla grande dovrei impostare anche un ciclo che controlli colonna per colonna se sulla riga 5 ci sono dati, se e vuota devo ripetere l'operazione di copia e incolla fino all'ultima riga con dati
    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    non mi va a cercare l'ultima riga del foglio di lavoro es. la mia ultima riga e la 20 sulla colonna G la macro punta alla riga 23 ...
    le celle della colonna selezionata, righe 21 e 22 non sono vuote
    se "sporchi" una cella oltre le righe volute, fai in modo da eliminare l'intera riga, non fare il "canc" della sola cella

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    5
    Ciao e grazie ancora per la pazienza,
    ho modificato appena un po il tuo codice e funziona bene anche,
    questo è quello modificato:

    Sub luca_Click()
    Dim UltimaRiga As Integer
    UR = ActiveSheet.UsedRange.SpecialCells(xlLastCell, xlNumbers).Row ' ULTIMA RIGA PIENA
    UC = ActiveSheet.UsedRange.SpecialCells(xlLastCell, xlNumbers).Column ' ULTIMA COLONNA PIENA
    'For x = 1 To UR
    'Sheets("Foglio6").Select
    'Columns("B:B").Select
    UltimaRiga = ActiveSheet.Cells.Find(What:="", _
    SearchDirection:=xlPrevious, SearchOrder:=xlByRows).Row - 1
    Range("A4").Select
    Selection.Copy
    Range("A5:A" & UR).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Application.CutCopyMode = False
    'Next
    Range("A5").Select
    'Selection.Clear
    End Sub

    domandona:
    se ora vorrei estendere il copia e incolla su tutte le colonne che dalla cella 5 sono vuote ??
    grazie ancora
    Saluti

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2014
    Messaggi
    539
    senza usare "finezze", ripeti il codice sotto riportato per le colonne che ti interessano
    cambiando la colonna "A" indicata nel codice, con la colonna che ti interessa
    (se ho capito bene la domandona)
    codice:
    Range("A4").Select
    Selection.Copy
    Range("A5:A" & UR).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
      :=False, Transpose:=False
    Application.CutCopyMode = False

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2014
    Messaggi
    5
    ciao, grazie per il consiglio.
    Ti chiedo: come posso realizzare un contatore che possa contare i cicli da ripetere in base alle colonne occupate???
    grazie
    Saluti

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.