P
Pascal
Guest
Bonjour à tous et toutes et un grand merci pour toutes les réponses que j'ai eues pour la mise en gras automatique de 6 en 6 lignes.
Je croyais en avoir terminé avec mon classeur et voilà que mes collègues de boulot en veulent encore plus.
J'ai une feuil1 qui s'appelle "DONNEES" et qui comporte 5 colonnes
La ligne 1 est la ligne de Titres "Auteur; Titre; Editeur; Date; Cote"
et à partir de la ligne 2 mes collègues rentrent des données.
Sur la feuil2 appelée MEF (pour mise en forme) j'applique la macro suivante elle peut certainement être améliorée mais c'est grâce à vous tous que j'ai réussi à faire ça :
Sub Livres2()
'Quand la feuil2 ou "MEF" est sélectionnée les données des colonnes
'A, B, C, D ,E de la feuil1 ou "DONNEES" et à partir de la ligne 2 se mettent
'dans la colonne A de la feuil2 "MEF" en A1, A2, A3, A4, A5 la cellule
'A6 elle est vide, et on repart A7, A8, A9, A10, A11, A12 vide etc.
Dim ligne As Double
Sheets("MEF").Select
Range("A1").Select
ActiveCell.Offset(0, 0).Formula = "=DONNEES!A1"
ActiveCell.Offset(1, 0).Formula = "=DONNEES!B1"
ActiveCell.Offset(2, 0).Formula = "=DONNEES!C1"
ActiveCell.Offset(3, 0).Formula = "=DONNEES!D1"
ActiveCell.Offset(4, 0).Formula = "=DONNEES!E1"
ActiveCell.Offset(0, 0).Select
ligne = 2
While Range("DONNEES!A" & ligne).Value <> ""
ActiveCell.Offset(0, 0).Formula = "=DONNEES!A" & ligne
ActiveCell.Offset(1, 0).Formula = "=DONNEES!B" & ligne
ActiveCell.Offset(2, 0).Formula = "=DONNEES!C" & ligne
ActiveCell.Offset(3, 0).Formula = "=DONNEES!D" & ligne
ActiveCell.Offset(4, 0).Formula = "=DONNEES!E" & ligne
ActiveCell.Offset(6, 0).Select
ligne = ligne + 1
Wend
Columns("A:B").Select
Selection.ColumnWidth = 40 'largeur des colonnes A et B est de 40
Selection.WrapText = True 'retour à la ligne automatique
Application.ScreenUpdating = False
For ligne = 1 To Range("a65535").End(xlUp).Row Step 6
If ligne > 65531 Then Exit Sub
Rows("" & ligne & ":" & ligne & "").Font.Bold = True
Rows("" & (ligne + 4) & ":" & (ligne + 4) & "").Font.Bold = True
Next ligne
End Sub
Donc vous avez compris que toutes les données de la feuille "DONNEES" se mettent dans l'autre sens sur la colonne A de la feuille "MEF"
Mais voilà qu'une de mes collègues voudrait que les données se mettent sur 2 colonnes et dans l'ordre. C'est à dire que sur la colonne A je dois mettre 8 blocs de 6 lignes soit 48 lignes (j'entends par Bloc la mise en forme d'une ligne de la 1ère feuille sur la 2ème) et que le bloc suivant remonte en B1, encore 8 blocs et qu'on passe à la page 2 dans la colonne A encore 8 blocs et remonter en haut de la page 2 colonne B. Finalement les données formeront une sorte de Z de page en page. Le probleme c'est que j'ai inserer un retour à la ligne automatique (pour les titres longs) et je ne saurais pas qu'elle est la ligne qui finie une page ?
Et bien si c'est assez clair et si l'un de vous a une petite idée je l'en remercie d'avance.
A+ Pascal
Je croyais en avoir terminé avec mon classeur et voilà que mes collègues de boulot en veulent encore plus.
J'ai une feuil1 qui s'appelle "DONNEES" et qui comporte 5 colonnes
La ligne 1 est la ligne de Titres "Auteur; Titre; Editeur; Date; Cote"
et à partir de la ligne 2 mes collègues rentrent des données.
Sur la feuil2 appelée MEF (pour mise en forme) j'applique la macro suivante elle peut certainement être améliorée mais c'est grâce à vous tous que j'ai réussi à faire ça :
Sub Livres2()
'Quand la feuil2 ou "MEF" est sélectionnée les données des colonnes
'A, B, C, D ,E de la feuil1 ou "DONNEES" et à partir de la ligne 2 se mettent
'dans la colonne A de la feuil2 "MEF" en A1, A2, A3, A4, A5 la cellule
'A6 elle est vide, et on repart A7, A8, A9, A10, A11, A12 vide etc.
Dim ligne As Double
Sheets("MEF").Select
Range("A1").Select
ActiveCell.Offset(0, 0).Formula = "=DONNEES!A1"
ActiveCell.Offset(1, 0).Formula = "=DONNEES!B1"
ActiveCell.Offset(2, 0).Formula = "=DONNEES!C1"
ActiveCell.Offset(3, 0).Formula = "=DONNEES!D1"
ActiveCell.Offset(4, 0).Formula = "=DONNEES!E1"
ActiveCell.Offset(0, 0).Select
ligne = 2
While Range("DONNEES!A" & ligne).Value <> ""
ActiveCell.Offset(0, 0).Formula = "=DONNEES!A" & ligne
ActiveCell.Offset(1, 0).Formula = "=DONNEES!B" & ligne
ActiveCell.Offset(2, 0).Formula = "=DONNEES!C" & ligne
ActiveCell.Offset(3, 0).Formula = "=DONNEES!D" & ligne
ActiveCell.Offset(4, 0).Formula = "=DONNEES!E" & ligne
ActiveCell.Offset(6, 0).Select
ligne = ligne + 1
Wend
Columns("A:B").Select
Selection.ColumnWidth = 40 'largeur des colonnes A et B est de 40
Selection.WrapText = True 'retour à la ligne automatique
Application.ScreenUpdating = False
For ligne = 1 To Range("a65535").End(xlUp).Row Step 6
If ligne > 65531 Then Exit Sub
Rows("" & ligne & ":" & ligne & "").Font.Bold = True
Rows("" & (ligne + 4) & ":" & (ligne + 4) & "").Font.Bold = True
Next ligne
End Sub
Donc vous avez compris que toutes les données de la feuille "DONNEES" se mettent dans l'autre sens sur la colonne A de la feuille "MEF"
Mais voilà qu'une de mes collègues voudrait que les données se mettent sur 2 colonnes et dans l'ordre. C'est à dire que sur la colonne A je dois mettre 8 blocs de 6 lignes soit 48 lignes (j'entends par Bloc la mise en forme d'une ligne de la 1ère feuille sur la 2ème) et que le bloc suivant remonte en B1, encore 8 blocs et qu'on passe à la page 2 dans la colonne A encore 8 blocs et remonter en haut de la page 2 colonne B. Finalement les données formeront une sorte de Z de page en page. Le probleme c'est que j'ai inserer un retour à la ligne automatique (pour les titres longs) et je ne saurais pas qu'elle est la ligne qui finie une page ?
Et bien si c'est assez clair et si l'un de vous a une petite idée je l'en remercie d'avance.
A+ Pascal