Encore de l'aide svpl !

  • Initiateur de la discussion Initiateur de la discussion Lacryma
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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
 
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
 
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

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
514
Réponses
6
Affichages
739
Retour