Encore de l'aide svpl !

L

Lacryma

Guest
Bonjour tous ,

voilà j'ai une macro qui extrait le contenu d'une feuille vers
word , cela marche pas mal, mais la macro extrait aussi les cellules vides
de mon tableau , ce qui fait qu'une fois le fichier extrait je me retrouve
avec pleins de pages pour juste quelques lignes de données le plus
souvent .
Que faut - il changer au code pour extraire uniquement les cellules
qui contiennent soit du texte ou des chiffres, et pas les cellules
qui sont vides et qui ont juste une bordure ?

merci d'avance ....
Lacryma

Code :

Sub InsereTableauFiltre()
Dim Wrd As Object
Set Wrd = CreateObject("Word.Application")
Dim AppWrd As Object

Set AppWrd = Wrd.Documents.Add
Wrd.Visible = True

Application.ScreenUpdating = False
Sheets("Impayés à ce jour").UsedRange.Copy
Wrd.Selection.Paste

Application.ScreenUpdating = True
Application.CutCopyMode = False

End Sub
 
@

@+Thierry

Guest
Bonsoir Lacryma, Bernard, le Forum

Je te donnerai deux conseils, le premier étant au niveau du choix de ton sujet qui n'est pas du tout "XLD Compliant" (Voir Notre Charte)

Le second, serait de préparer ta feuille Excel à exporter, en y copiant uniquement les données que tu désires, le code ci dessus s'enchainant ensuite.

Exemple :

Sub GenerateTempSheet()
Const NombreColonne As Byte = 10
Dim L As Integer, X As Integer
Dim i As Byte
Dim OK As Boolean

L = 1

ThisWorkbook.Worksheets.Add after:=Sheets(Sheets.Count)
On Error GoTo Suite
Sheets(Sheets.Count).Name = "TempForWord"

Suite:
   With Sheets("Impayés à ce jour")
      For X = 1 To .UsedRange.Rows.Count
      OK = False

          For i = 1 To NombreColonne
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If .Cells(X, i) <> "" Then
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sheets("TempForWord").Cells(L, i) = .Cells(X, i)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;OK = True
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next i

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If OK = True Then L = L + 1
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Next X
&nbsp;&nbsp;&nbsp;End With
InsereTableauFiltre
End Sub

Sub InsereTableauFiltre()
Dim Wrd As Object
Set Wrd = CreateObject("Word.Application")
Dim AppWrd As Object

Set AppWrd = Wrd.Documents.Add
Wrd.Visible = True

&nbsp;&nbsp;&nbsp;With Application
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ScreenUpdating = False
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sheets("TempForWord").UsedRange.Copy
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Wrd.Selection.Paste
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.ScreenUpdating = True
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.CutCopyMode = False
&nbsp;&nbsp;&nbsp;End With
End Sub

C'est comme dit Bernard, assez difficile de savoir comment est fait ton tableau, ici la Constante "NombreColonne" est définie pour traiter sur DIX Colonnes ta feuilles de départ...

Bon Courage et bonne lecture de la Charte

@+Thierry
 
J

Jean-Jacques

Guest
Bonsoir Lacryma,CBernardT,@+Thierry ,
T'es vraiment impressionnant et admirable @+Thierry, tu arrives à comprendre des demandes qui appellent bien souvent autant de questions que de réponses possibles (c'est pas le cas de lacryma ou le truc paraît shématique mais je n'ai pasta science) et tu livres dans l'heure la solution universelle qui ne bogue pas!
Tous mes respects!!
bien cordialement.
JJ
 
@

@+Thierry

Guest
Bonsoir Jean Jacques, re Lacryma, Bernard, le Forum

Merci beaucoup Jean Jacques, je suis touché, tout ce que je peux dire pour ma "défense" c'est que, bien que pas mal de nouveaux et nouvelles intervenant(e)s n'ont pas eu l'occasion de me voir ici très souvent ces derniers mois, j'ai commencé dans XLD il y a un certain petit moment.

Pas mal de choses que je sais faire sur Excel c'est justement grace à cet immense encyclopédie vivante qu'est devenue le Net avec des Forums de Partage de Connaissance comme celui-ci, et tout particulièrement celui-ci où règne aussi une certaine amitié et complicité entre les membres.

C'est fou tout ce que j'ai appris ici sur XLD, et je suis le premier heureux à pouvoir vous en faire profiter à mon tour.

Par ailleurs, je bosse aussi là dedans, alors en général, les trucs qui bogues sont très très génants pour moi

Enfin encore merci, tu m'as mis d'Excellente humeur ce soir Jean Jacques.

Bonne soirée
@+Thierry
 
L

Lacryma

Guest
Re bonsoir à tous ,

Tout d'abord , je tiens à remercier toutes les personnes qui viennent
en aide aux novices comme moi sur ce forum.....
Et toutes mes excuses si je n'ai pas respecté la charte...
Je vais essayer de m'améliorer lol....

Je suis toujours en train de me bagarrer avec mon fichier Excel, comme je ne
connais pas grand chose et que je suis imcapable d'ecrire la moindre ligne
de code , je pique des exemples à gauche et à droite...
J'essaie de les adapter à ma guise , sans grande réussite en général je l'avoue .....

@+Thierry,

Merci pour ton aide, malgré l'absence de mon fichier ...
Ton code fonctionne très bien... super ...
J'ai mis un exemple en pièce jointe cette fois, car j'aimerai que tu m'aide encore pour apporter quelques améliorations si c'est possible ...

1 ) Supprimer automatiquement la feuille " Tempforword" après l'extraction.
2 ) Un retour automatique sur l'onglet " Impayés à ce jour " après suppression de " Tempforword ".
3 ) Le bouton " Ouvrir Word " dans l'onglet "Impayés à ce jour" est il possible qu'il m'ouvre sur un nouveau document ?

@+
et merci
Lacryma
 

Pièces jointes

  • exemple.zip
    37.3 KB · Affichages: 11
  • exemple.zip
    37.3 KB · Affichages: 15
  • exemple.zip
    37.3 KB · Affichages: 10

Discussions similaires

Réponses
6
Affichages
311

Statistiques des forums

Discussions
312 330
Messages
2 087 340
Membres
103 524
dernier inscrit
Smile1813