Copier cellules colonne F dans la colonne G mais sans les lignes vides

Bonjour,

Je souhaiterais pouvoir copier automatiquement le texte de ma colonne F dans la colonne G mais sans les lignes vides et en gardant le même style de texte.

Pouvez-vous m'aider?

Meilleures salutations,

Thierry

29test4.xlsm (36.04 Ko)

Bonsoir Thierry,

Voici une possibilité

Sub CopieFdansG()
  Dim dLig As Long, Lig As Long, nLig As Long
  With Sheets("Notes")
    dLig = .Range("F" & Rows.Count).End(xlUp).Row
    For Lig = 1 To dLig
      If .Range("F" & Lig) <> "" Then
        ' Prochaine ligne vide dans l'autre colonne
        nLig = .Range("G" & Rows.Count).End(xlUp).Row + 1
        ' Pour la 1ère ligne
        If nLig = 2 And .Range("G" & nLig - 1) = "" Then nLig = 1
        .Range("G" & nLig).Value = .Range("F" & Lig).Value
        .Range("F" & Lig).Copy
        .Range("G" & nLig).PasteSpecial Paste:=xlPasteFormats
      End If
    Next Lig
  End With
End Sub

A+

bonsoir BrunoM45, Thierry36, le fil,

une autre possibilité :

Sub F_Vers_G()
     Application.ScreenUpdating = False
     With Sheets("Notes")
          Set c = .Range(.Range("F1"), .Range("F" & Rows.Count).End(xlUp))     'colonne F
          If c.Parent.FilterMode Then c.Parent.FilterMode = False     'RAZ autofilter
          c.AutoFilter 1, "<>"     'cellules non vides
          c.Copy     'copier ces cellules
          Set sh = Worksheets.Add     'nouvelle feuille
          sh.Range("A1").PasteSpecial Paste:=xlValues     'coller valeurs
          sh.Range("A1").PasteSpecial Paste:=xlPasteFormats     'coller format
          c.AutoFilter     'RAZ autofilter
          sh.UsedRange.Copy     'copier cellules collées
          .Range("H1").PasteSpecial Paste:=xlValues     'coller dans feuille originale
          .Range("H1").PasteSpecial Paste:=xlPasteFormats
          Application.DisplayAlerts = False
          sh.Delete     'delete nouvelle feuille
          Application.DisplayAlerts = True
     End With
     Application.ScreenUpdating = True
End Sub

Bonsoir BsAlv,

mais pourquoi passer par une autre feuille au vu de la demande ?

Sub F_Vers_G()
     Application.ScreenUpdating = False
     With Sheets("Notes")
          Set c = .Range(.Range("F1"), .Range("F" & Rows.Count).End(xlUp))     'colonne F
          If c.Parent.FilterMode Then c.Parent.FilterMode = False     'RAZ autofilter
          c.AutoFilter 1, "<>"     'cellules non vides
          c.Copy Destination:=Range("G1")    'copier ces cellules
          c.AutoFilter     'RAZ autofilter
     End With
     Application.ScreenUpdating = True
End Sub

Le copy Destination fait une copie "entière" de la cellule source, non ?

@ bientôt

LouReeD

hello LouReed,

Vous avez raison, mais pas 100% et je ne comprends pas pourquoi.

Votre macro ne fonctionne pas, mais si j'ajoute un point en face de "Range("G1")", ça va !!!???

Pourtant, ma feuille active est "Notes"

 c.Copy Destination:=Range("G1")    'copier ces cellules

Edit modo : vérification faite et cela fonctionne

@BrunoM45, le fil

non, le résultat est sans formules et sans cellules vides, si on ajoute un point en face !

La version de LouReed est correcte d'une manière inexplicable.

Un proverbe flamand "tu n'as pas besoin d'être jolie pour avoir de la chance ..."

13test4.xlsm (56.21 Ko)

Salut BsAlv

A priori, c'est grâce au filtrage

Tu fais la même chose sans filtre et là, il y a bien les formules et non les valeurs

Vive Microsoft et sa logique

Bonjour,

chez moi MS Office 365 fr, point ou pas point cela fonctionne !
Merci pour les différents test ! Et merci à BsAlv pour cette technique de filtre avant copie, il faut que je la retienne celle-là !

@ bientôt

LouReeD

bonjour, c'est bizar ... .

Chez moi, sans point ne fonctionne pas et c'est pourtant aussi Office 365 NL Insider et coller, c'est sans formules ...

image

Bonsoir,

j'ai regardé votre fichier Test4 BsALv, avez-vous vu la différence entre la colonne G et H ? En H il y a bien un espace entre le moins et le chiffre alors qu'en colonne G il n'y en a pas, alors même qu'il y en a un en colonne F ! Problème de mise en forme ?

Et je le dis et redis, les deux syntaxe fonctionnent chez moi !

@ bientôt

LouReeD

Bonsoir LouReed,

BsAlv, il a raison, bien évidemment que cela fonctionne sans point puisque l'on est sur la même feuille

Ceci dit la syntaxe n'est pas correcte pour un puriste

A+

et l'espace en colonne G sur le fichier test4, il est passé où ?

@ bientôt

LouReeD

Bonjour à tous,

Merci beaucoup pour votre aide et je ne m'attendais pas à autant d'intérêt pour ma demande.

Vos codes sont fonctionnels mais je ne souhaite pas copier le texte dans une autre colonne mais juste pouvoir saisir la copie pour pouvoir copier ces cellules dans un document Word.

On pourrait envisager que lorsque l'on clique sur le bouton copier il masque les lignes vides, copie les cellules de la colonne F et lorsque la sélection de copie est désactivée, cela affiche à nouveau les lignes masquée mais je ne sais pas si c'est réalisable.

Mes meilleures salutations et bon début de semaine à tous.

Thierry

Bonsoir,

merci pour votre retour et remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "copier colonne lignes vides"