Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 VBA - Bouton copier sans les lignes vides

tchi456

XLDnaute Occasionnel
Bonjour,

J'ai ce code pour pouvoir copier les cellules F1:F126; cependant je souhaiterais que ça ne prenne pas en compte les lignes vides:

VB:
Sub BoutonCopierContenuCellules()
Worksheets("Notes").Range("F1:F126").Copy
End Sub

Pouvez-vous m'aider?

Meilleures salutations,

Thierry
 
Solution
Bonjour le fil

Tes OK sur mon PC
(il faut activer la Référence à la librairie Word dans Excel)
VB:
Sub CopierVersWord_sans_vide() 'test ok
'Déclarations variables
Dim wordApp As Word.Application, oDoc As Word.Document, Copie As Range
'Création Appli/Objet/Doc Word
Set wordApp = New Word.Application
wordApp.Visible = True
Set oDoc = wordApp.Documents.Add()
'Copie dans plage temporaire sans vide
Columns("F:F").SpecialCells(xlCellTypeConstants, 3).Copy
Range("P1").PasteSpecial Paste:=xlPasteValues, SkipBlanks:=True
'copie vers Word
Set Copie = [P1].CurrentRegion
Copie.Copy
oDoc.Paragraphs(1).Range.PasteSpecial DataType:=wdPasteText
End Sub

st007

XLDnaute Barbatruc
Bonjour,
et si tu filtrais d'abord, ou dans la feuille de destination

VB:
Private Sub Worksheet_Activate()
Application.ScreenUpdating = False
If FilterMode Then ShowAllData 'si la feuill est filtrée
UsedRange.ClearContents 'RAZ
With Sheets("Notes").UsedRange
    [F1].Resize(.Rows.Count, .Columns.Count) = .Value
End With
On Error Resume Next 'si aucune SpecialCell
[f:f].SpecialCells(xlCellTypeBlanks).EntireRow.Delete
Columns.AutoFit 'ajustement largeurs
With UsedRange: End With 'actualise les barres de défilement
End Sub
 

tchi456

XLDnaute Occasionnel
Bonjour st007,

J'ai bien essayé votre code mais je sais pas exactement ou le coller.
Voici le fichier test ci-dessous.

Meilleures salutations,

Thierry
 

Pièces jointes

  • Test2.xlsm
    36.1 KB · Affichages: 5

tchi456

XLDnaute Occasionnel
Re-bonjour st007,

Merci pour votre proposition qui fonctionne très bien mais je ne voulais faire que copier et non pas coller sur une autre feuille.

Meilleures salutations,

Thierry
 

Pièces jointes

  • Test3.xlsm
    39.5 KB · Affichages: 2

tchi456

XLDnaute Occasionnel
Bonjour st007,

Je souhaiterais juste modifier le code de mon bouton pour pouvoir copier (sans coller sur une autre feuille) les cellules F1:F126 (sans les lignes vides) et ne tenant plus compte des "vu" dans la colonne D.

Désolé si je n'ai pas été très clair dans ma demande dès le début.

Mes meilleures salutations,

Thierry
 

Pièces jointes

  • Test4.xlsm
    39.6 KB · Affichages: 4

Staple1600

XLDnaute Barbatruc
Bonjour le fil

Tes OK sur mon PC
(il faut activer la Référence à la librairie Word dans Excel)
VB:
Sub CopierVersWord_sans_vide() 'test ok
'Déclarations variables
Dim wordApp As Word.Application, oDoc As Word.Document, Copie As Range
'Création Appli/Objet/Doc Word
Set wordApp = New Word.Application
wordApp.Visible = True
Set oDoc = wordApp.Documents.Add()
'Copie dans plage temporaire sans vide
Columns("F:F").SpecialCells(xlCellTypeConstants, 3).Copy
Range("P1").PasteSpecial Paste:=xlPasteValues, SkipBlanks:=True
'copie vers Word
Set Copie = [P1].CurrentRegion
Copie.Copy
oDoc.Paragraphs(1).Range.PasteSpecial DataType:=wdPasteText
End Sub
 

tchi456

XLDnaute Occasionnel
Bonjour Phil69970 et Staple1600,

Désolé pour la réponse tardive et merci beaucoup pour vos propositions.
Staple1600 je n'arrive malheureusement pas à faire fonctionner votre code.
Phil69970 votre idée de masquer les lignes me convient parfaitement mais pourrait-on réafficher automatiquement ces lignes lorsque la sélection de copie est désactivée?

Mes meilleures salutations et bon début de semaine.

Thierry
 

tchi456

XLDnaute Occasionnel
Bonjour Phil69970,

Votre code fonctionne bien mais ne me permet pas de copier dans word sans les lignes vides.
L'idéal serait de réafficher les lignes lorsque la sélection de copie est désactivée (donc quand on clique sur escape).

 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…