Problème en tête dans l'impression de la base de données

Bonjour à tous,

Espère que tout va bien en cette rentrée, je viens vous voir car j’ai un petit souci lors de l’impression avec certains critères de ma base de données je souhaite insérer une ligne au-dessus de ma base de données pour avoir le nombre de personnes sélectionnées dans l’impression automatiquement.

le problème est quand je décale le tableau d’une ligne vers le bas il me change l’en-tête de la base de données pour la mettre à la fin et je n’arrive pas a voir dans le code VBA qu’une personne a réalisé pour moi ou je dois changer ce décalage pour que cela fonctionne sur les images qui sont à la suite du code VBA montrent ce que cela fait après l’action de la demande d’impression pouvez-vous m’aider s’il vous plaît.

`
'Userform 6 (Editions Courante)

Option Explicit

Private MyColumnSort As String
Private MyCriteria As String
Private MyFilterColumn As String

Private Sub CommandButton1_Click()

UserForm13.Show

End Sub

Private Sub CommandButton2_Click() 'tous les Artiste order alpha

MyCriteria = « Liste par pays ordre alpha »
MyFilterColumn = «  »
MyColumnSort = « M1 »
TheImpressioniste

End Sub

Private Sub TheImpressioniste()

'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
'Impression artistes tous pays $
'$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

Sheets(« BDD »).Visible = True

Dim WS As Worksheet

Set WS = ThisWorkbook.Worksheets(« BDD »)

If WS.AutoFilterMode = False Then
WS.Range(« A2 »).AutoFilter
End If

If WS.AutoFilterMode = True Then
If WS.FilterMode = True Then
WS.ShowAllData
End If
End If

If MyFilterColumn <> «  » Then
WS.Range(« A1 »).CurrentRegion.AutoFilter Field:=MyFilterColumn, Criteria1:=MyCriteria
End If

With WS
.Range(« A1 »).CurrentRegion.Sort Key1:=.Range(MyColumnSort), _
Order1:=xlAscending, _
Header:=xlYes
.Columns(« C:C »).EntireColumn.Hidden = True
.Columns(« F:L »).EntireColumn.Hidden = True
.Columns(« P:R »).EntireColumn.Hidden = True
.Columns(« U:AI »).EntireColumn.Hidden = True

.Columns("A:A").ColumnWidth = 3
.Columns("B:B").ColumnWidth = 6
.Columns("D:D").ColumnWidth = 15
.Columns("E:E").ColumnWidth = 15
.Columns("D:D").ColumnWidth = 15
.Columns("E:E").ColumnWidth = 15
.Columns("N:N").ColumnWidth = 4
.Columns("O:O").ColumnWidth = 6
.Columns("R:R").ColumnWidth = 2
.Columns("S:S").ColumnWidth = 3
.Columns("T:T").ColumnWidth = 2

With .PageSetup
.Orientation = xlPortrait
.Zoom = 120
.CenterHeader = MyCriteria
.PrintTitleRows = "$1:$1"
End With

End With

Unload Me
Unload UserForm4
WS.PrintPreview

'ActiveSheet.ShowAllData

With WS.Cells
.EntireColumn.Hidden = False
.EntireRow.Hidden = False
End With

With WS
.Columns(« D:D »).ColumnWidth = 30
.Columns(« E:E »).ColumnWidth = 30
End With

Sheets(« BDD »).Visible = True

UserForm4.Show

End Sub

Private Sub CommandButton3_Click()

MyCriteria = « Liste artistes par ordre alpha »
MyFilterColumn = «  »
MyColumnSort = « D1 »
TheImpressioniste

End Sub

Private Sub CommandButton4_Click()

Unload Me

UserForm10.Show

End Sub’

Bonjour

Peut être agir sur cette ligne de code :

.PrintTitleRows = « $1:$1 »
Mettre avec une condition :

If Range (« A1 ») = « N°artiste » Then
.PrintTitleRows = « $1:$1 »
Else
.PrintTitleRows = « $1:$2 »
End if
A essayer
Attention ressaisir les guillemets au clavier accolé à la donnée
Si cela ne fonctionne pas il faudrait nous transmettre le fichier sans données confidentielles pour que l on puisse tester sur pièce

Bonjour merci de vous penché sur mon problème j’ai essayé de mettre ce que vous me proposez en place mais cela ne fonctionne pas peut-être que je m’y prends mal ce classeur il se construit grâce à l’aide de plusieurs forums personnellement j’ai du mal de fois à comprendre ce que cela veut dire je vous transmets donc le fichier. .XLD_Dubarre_Gestion_des_Artistes_vNombre_artistes.xlsm (673,5 Ko)

Voila ce que j’obtiens :

Pas de souci de décalage

Voir plutôt du côté du réglage des paramètres de ton imprimante car chez moi le résultat est correct

En faite j’ai oublié de faire un truc le chiffre 22 sur la première colonne devrait être au-dessus de l’en-tête car c’est le nombre de personnes quand le filtre se met je te renvoie le classeur modifié cela se trouve sur la feuille BDD
XLD_Dubarre_Gestion_des_Artistes_vNombre_artistes.xlsm (673,6 Ko)

Ci-joint ton fichier corrigé
Souci avec les instructions de tri
J’ai considéré 2 cas
1° cas entête de colonne en ligne 1
2° cas entête de colonne en ligne 2 avec en ligne 1 le nombre d’artistes
Pour cela je me suis appuyé sur la présence ou non en cellule B1 de l’entête « N° artiste »
Attention de ne pas modifier cet entête sinon plus de repère pour le traitement

Fais des tests et dis moi

XLD_Dubarre_Gestion_des_Artistes_vNombre_artistes (1).xlsm (679,9 Ko)

Bonsoir,

Ça fonctionne par rapport à la disposition et à l’impression pour un ordre alpha par pays

Par contre quand je lui demande l’impression par ordre alphabétique au niveau du nom voilà ce que ça me fait. Il faut vraiment que je puisse faire le tri grâce à ces deux boutons sois ordre alphabétique par pays sois ordre alphabétique par le nom des personnes en vous remerciant d’avance.

Capture

Encore fallait-il le savoir !!!
Ce n’était pas dit dans ton premier échange
Désolé
C’est corrigé dans cette nouvelle version
Testes et dis moi

XLD_Dubarre_Gestion_des_Artistes_vNombre_artistes (1).xlsm (680,2 Ko)

Super ça fonctionne comme je souhaite je vous remercie beaucoup de votre patience et désolée pour la p’tite contrainte de dernière minute est-ce que c’est possible pour vous de m’expliquer comment et où vous avez fait ce décalage pour que cela fonctionne s’il vous plaît.

Ce n est pas un décalage mais le tri réalisé qui lorsque la ligne de titre des colonnes étaient en ligne 2 au lieu de la ligne 1 elle était incluse dans son action qui la déplaçait en fin de toutes les données donc tout en bas de la feuille
Il a fallu mettre en place un traitement différencié en fonction de sa position afin qu elle ne soit pas prise dans le tri
Voilà pour les explications
Bon courage pour la suite
Au plaisir pour une nouvelle aventure

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.