Impression et petit beug

Bonjour à toutes et à tous.

Comme vous pouvez voir dans le ficher, il y a un classeur calcul et impression. Dans ce dernier, il y a 5 icônes. J'ai essayé d'enregistrer 5 macro (par l'intermédiaire de l'icone "macro" de l'onglet "Développeur") mais lorsque je demande activation, cela me fait n'importe quoi alors que j'ai bien fait attention lors de l'enregistrement.

Prenons le cas principal (car après je n'aurais plu qu'à adapter en fonction des éléments)

Participants Liste Générale:

Le but étant d'imprimer sur une feuille A3 mode paysage, uniquement les colonnes B, C et de N à Y du classeur "General" avec le nom de l'icone en haut de la feuille d'impression.

Merci par avance de vos réponses et de vos aides.

6gestion.xlsm (111.38 Ko)

Bonjour

Un essai à tester pour le bouton : ''Participants Liste Générale''

Bye !

13gestion-v1.xlsm (93.02 Ko)

Bonjour GMB.

Je te remercie de t'être penché sur le problème.

Je te tiens au courant dès demain lorsque je serai à coté de l'imprimante A3

Encore merci et à demain

Je viens de m'apercevoir que j'ai un petit beug dans le VBA...

Mais je ne sais pas pourquoi. Voici le beug...

Dans ma fenêtre de saisie (userform2)

Insérer un contact:

Je clique sur "nouveau" pour avoir les champs vierges, je saisis un contact et je clique sur "ajouter" pour ajouter le contact à la liste. Non seulement il ne m'ajoute pas le contact mais en plus il me signale ça:

---> Erreur exécution "1004" La méthode Sort de la classe Range a échoué.

Quand je fais débogage, il me montre cette ligne de VBA (en gras):

---> Sub tri_par_ordre_croissant()

Range("A1:AA" & Range("A65000").End(xlUp).Row).Sort Key1:=Range("C1"), Order1:=xlAscending, Key2:=Range("B1"), Order2:=xlAscending, Header:=xlYes

End Sub

Supprimer un contact:

Il y a exactement le même problème sauf qu'il me supprime réellement le contact.

Donc je pense que le problème vient du tri par ordre croissant... mais je ne sais pas où...

Quelqu'un A-t-il la solution au problème?

Bonsoir

Joins le fichier avec le problème et détailles les opérations pour provoquer l'erreur

Le voici.

Sachant que pour ouvrir l'userform2, il faut appuyer simultanément sur ctrl+shift+W quant aux opérations je refais le copier-coller:

Insérer un contact:

Je clique sur "nouveau" pour avoir les champs vierges, je saisis un contact et je clique sur "ajouter" pour ajouter le contact à la liste. Non seulement il ne m'ajoute pas le contact mais en plus il me signale ça:

---> Erreur exécution "1004" La méthode Sort de la classe Range a échoué.

Quand je fais débogage, il me montre cette ligne de VBA (en gras):

---> Sub tri_par_ordre_croissant()

Range("A1:AA" & Range("A65000").End(xlUp).Row).Sort Key1:=Range("C1"), Order1:=xlAscending, Key2:=Range("B1"), Order2:=xlAscending, Header:=xlYes

End Sub

Supprimer un contact:

Il y a exactement le même problème sauf qu'il me supprime réellement le contact.

11gestion.xlsm (111.38 Ko)

Bonjour

Satanés tableaux

Remplaces la macro actuelle par celle-ci

Sub tri_par_ordre_croissant()

  With Sheets("General").ListObjects("Tableau1").Sort
    .SortFields.Clear
    .SortFields.Add Key:=Sheets("General").Range("C2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    .SortFields.Add Key:=Sheets("General").Range("B2"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    .Apply
  End With
End Sub

Merci Banzai Ca marche. Plus de problème de VBA


gmb a écrit :

Bonjour

Un essai à tester pour le bouton : ''Participants Liste Générale''

Bye !

Alors j'ai essaye...mais ca ne fonctionne pas...

Voilà ce que ca me donne:

A l'écran, cela cache bien les colonnes demandées mais après l'impression cela ne remet pas les colonnes comme à l'origine...

Lors de l'impression, cela m'imprime en bandeau et en tout petit (19 cm x 4 cm) fomat A4 portrait, la feuille de calcul et non la feuille générale

Bonjour Dam06

c'est pas la peine de me demandé de corriger le bug en MP si c'est pour mettre un post concernant le même problème Cela aurais evité a Banzai de chercher une solution sachant que je l'avais déjà trouvée et envoyée par MP.

La prochaine fois si tu est tellement pressé pose directement la question sur le forum

fred


pour répondre a la question de ton problème il faut mettre un sheets("general").select

    Sheets("General").Select

    Columns("A:M").EntireColumn.Hidden = False                          'On s'assure que toutes les colonnes sont démasquées
    Sheets("General").Range("A:A,D:M").EntireColumn.Hidden = True       'On masque les colonnes que l'on ne veux pas imprimer
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False                                         'On imprime la feuille
    Columns("A:M").EntireColumn.Hidden = False                          'On démasque les colonnes masquées

au début du code pour que cela imprime la bonne feuille

voici le résultat en pièce jointe en pdf

après il faut peut-être redéfinir ton tableau ou la zone d'impression si tu ne veux pas imprimer des lignes vides...

fred

3gestion-v1.pdf (10.43 Ko)
Rechercher des sujets similaires à "impression petit beug"