Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1714 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel][Résolu] Aide à la mise-en-page

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA Excel][Résolu] Aide à la mise-en-page

n°2158509
BrisChri
Since 1956
Posté le 28-09-2012 à 15:39:09  profilanswer
 

:hello:
J'utilise une macro pour extraire des données d'une feuille Excel et les recopier sur une autre.
La feuille d'arrivée est destinée à être imprimée, une partie des données est reprise dans le titre. Le plus simple est, me semble-t-il, d'effacer le contenu de la feuille avant de la remplir.
 
Que faut-il employer pour fusionner des cellules? range ("a1:g1" ).???
Que faut-il employer pour centrer le texte dans les cellules fusionnées? Non fusionnées?
 
Bref, quelles sont les fonctions de mise-en-page avec VBA?
Si vous avez un lien, je suis preneur.


Message édité par BrisChri le 19-10-2012 à 10:56:12

---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
mood
Publicité
Posté le 28-09-2012 à 15:39:09  profilanswer
 

n°2158512
vave
Nice to meet me
Posté le 28-09-2012 à 15:50:14  profilanswer
 

Re  :hello:

 

pour fusionner :

Code :
  1. Range("A1:G1" ).Merge
 

pour centrer :

Code :
  1. Range("A1:G1" ).HorizontalAlignment = xlCenter
 

Pour faire les 2 :

Code :
  1. With Range("A1:G1" )
  2.    .Merge
  3.    .HorizontalAlignment = xlCenter
  4. End With
 

Pour les tutos / faq, le site développez est très bien
http://vb.developpez.com/faqvba/?page=3.4

 

Edit : Les cellules fusionnées fonctionnent à peu près comme les normales en prenant la cellule la plus en haut à gauche.


Message édité par vave le 28-09-2012 à 15:51:25

---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2158514
BrisChri
Since 1956
Posté le 28-09-2012 à 16:09:15  profilanswer
 

Je jette un œil, je le ramasse plus tard.
Pas au bureau lundi, n'attends pas une réaction avant mardi.


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2158516
BrisChri
Since 1956
Posté le 28-09-2012 à 16:24:31  profilanswer
 

http://brischri.angelfire.com/oovaveoo.xlsm

 

Il n'y a pas de macro malgré le nom du fichier, le code suit :)
Si tu veux, tu jettes un œil toi aussi.

 

Option Explicit

 

Sub ImprimerLigne()
    ' Auteur: Ch.Brissa
    ' Impression des données d'une ligne de la feuille inventaire sous forme de page
   
   
    ' Déclarations
    Dim nI As Integer
    Dim nJ As Integer
       
    Dim nRow As Integer
    Dim nOldRow As Integer
    Dim nCol As Integer
               
    Dim tAdr(8) As String
    Dim tScanner(4) As String
    Dim tIPS(6) As String
    Dim tPCScan(4) As String
    Dim tPCExtract(4) As String
    Dim tColScanner(4) As String
    Dim tColIPS(6) As String
    Dim tColPC(4) As String
       
    tColScanner(2) = "S/N"
    tColScanner(3) = "Date livraison"
    tColScanner(4) = "Code rouleaux"
   
    tColIPS(1) = "Hardware Key"
    tColIPS(2) = "Vitesse"
    tColIPS(3) = "ID Boîtier"
    tColIPS(4) = "S/N"
    tColIPS(5) = "Wibu Key"
    tColIPS(6) = "Software Key"
   
    tColPC(1) = "Modèle"
    tColPC(2) = "S/N"
    tColPC(3) = "Date livraison"
    tColPC(4) = "Nom"
       
    nRow = 1                       ' devra être modifié!!!!!!!!!!!!
    Sheets("Inventaire" ).Activate   ' devra être supprimé
   
    ' Sauver les données dans les tableaux
    '
   
    ' Renseignements d'adresse (début)
    tAdr(1) = Cells(nRow, 1)
    nJ = 3
    For nI = 2 To 5
        tAdr(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
   
    'Renseignements du scanner
    For nI = 0 To 4
        tScanner(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
   
    'Renseignements IPS
    For nI = 1 To 6
        tIPS(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI

 

   'Renseignements PC de scan
    For nI = 0 To 4
        tPCScan(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
   
    'Renseignements PC DBExtractor
    For nI = 0 To 4
        tPCExtract(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
   
    'Renseignements d'adresse (fin)
    nJ = nJ + 1
    For nI = 6 To 8
        tAdr(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
   
    '
    ' Créer la page Poste
    Sheets("Poste" ).Activate
    Range("A3:F50" ).ClearContents
    Range("A3:F50" ).ClearFormats
    Columns("A:A" ).ColumnWidth = 25
    Columns("A:A" ).HorizontalAlignment = xlRight
   
    ' En-tête
    Range("A1:A2" ).Font.Size = 15
    Range("A1:A2" ).Font.Bold = True
    Cells(1, 1).Value = "Description d'un poste de travail à"
    Cells(2, 1).Value = tAdr(3) + " " + tAdr(4)
    With Range("A1:F1" )
        .Merge
        .HorizontalAlignment = xlCenter
    End With
    With Range("A2:F2" )
        .Merge
        .HorizontalAlignment = xlCenter
    End With
    Range("A1:F2" ).Borders.Value = 0
    Range("A1:F2" ).Borders.Weight = 2
   
   
    ' Adresse
    nCol = 1
    nRow = 4
    nOldRow = nRow
    Cells(nRow, nCol).Value = "Adresse"
    Cells(nRow, nCol).Font.Size = 11
    Cells(nRow, nCol).Font.Italic = True
    Cells(nRow, nCol).Interior.Color = RGB(174, 240, 194)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tAdr(1) + " ) "
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "Ressort de Cour d'appel : "
    Cells(nRow, (nCol + 1)).Value = tAdr(5)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "Service : "
    Cells(nRow, (nCol + 1)).Value = tAdr(6)
    nRow = nRow + 1
    Cells(nRow, (nCol + 1)).Value = tAdr(2)
    nRow = nRow + 1
    Cells(nRow, (nCol + 1)).Value = tAdr(3) + "  " + tAdr(4)
    nRow = nRow + 1
    If tAdr(7) <> "" Then
        Cells(nRow, nCol).Value = "Local : "
        Cells(nRow, (nCol + 1)).Value = tAdr(7)
        nRow = nRow + 1
    End If
    If tAdr(8) <> "" Then
        Cells(nRow, nCol).Value = "Tél : "
        Cells(nRow, (nCol + 1)).Value = tAdr(8)
    End If
           
    ' Scanner
    nRow = nRow + 2
    Cells(nRow, nCol).Value = "Scanner"
    Cells(nRow, nCol).Font.Size = 11
    Cells(nRow, nCol).Font.Italic = True
    Cells(nRow, nCol).Interior.Color = RGB(174, 240, 194)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tScanner(0) + " ) "
    Cells(nRow, (nCol + 1)).Value = tScanner(1)
    nRow = nRow + 1
    For nI = 2 To 4
        Cells(nRow, nCol).Value = tColScanner(nI) + " : "
        Cells(nRow, (nCol + 1)).Value = tScanner(nI)
        nRow = nRow + 1
    Next nI
   
    ' IPS
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "IPS"
    Cells(nRow, nCol).Font.Size = 11
    Cells(nRow, nCol).Font.Italic = True
    Cells(nRow, nCol).Interior.Color = RGB(174, 240, 194)
    nRow = nRow + 1
    For nI = 1 To 6
        Cells(nRow, nCol).Value = tColIPS(nI) + " : "
        Cells(nRow, (nCol + 1)) = tIPS(nI)
        nRow = nRow + 1
    Next nI
   
       
    ' PC de scan
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "PC de scan"
    Cells(nRow, nCol).Font.Size = 11
    Cells(nRow, nCol).Font.Italic = True
    Cells(nRow, nCol).Interior.Color = RGB(174, 240, 194)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tPCScan(0) + " ) "
    nRow = nRow + 1
    For nI = 1 To 4
        Cells(nRow, nCol).Value = tColPC(nI) + " : "
        Cells(nRow, (nCol + 1)) = tPCScan(nI)
        nRow = nRow + 1
    Next nI
       
    ' PC DBExtractor
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "PC DB Extractor"
    Cells(nRow, nCol).Font.Size = 11
    Cells(nRow, nCol).Font.Italic = True
    Cells(nRow, nCol).Interior.Color = RGB(174, 240, 194)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tPCExtract(0) + " ) "
    nRow = nRow + 1
    For nI = 1 To 4
        Cells(nRow, nCol).Value = tColPC(nI) + " : "
        Cells(nRow, (nCol + 1)) = tPCExtract(nI)
        nRow = nRow + 1
    Next nI
End Sub


Message édité par BrisChri le 29-09-2012 à 11:59:34

---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2158714
BrisChri
Since 1956
Posté le 01-10-2012 à 15:14:28  profilanswer
 

Macro modifiée mais pas encore terminée.
 

Option Explicit
Private Sub Cadre(nOldRow As Integer, nRow As Integer, nCol As Integer)
    Cells(nOldRow, nCol).Font.Size = 11
    Cells(nOldRow, nCol).Font.Italic = True
    Cells(nOldRow, nCol).Interior.Color = RGB(174, 240, 194)
End Sub
Sub ImprimerLigne()
    ' Auteur: Ch.Brissa
    ' Impression des données d'une ligne de la feuille inventaire sous forme de page
     
     
    ' Déclarations
    Dim nI As Integer
    Dim nJ As Integer
         
    Dim nRow As Integer
    Dim nOldRow As Integer
    Dim nMaxRow As Integer
    Dim nCol As Integer
               
    Dim tAdr(8) As String
    Dim tScanner(4) As String
    Dim tIPS(6) As String
    Dim tPCScan(4) As String
    Dim tPCExtract(4) As String
    Dim tColScanner(4) As String
    Dim tColIPS(6) As String
    Dim tColPC(4) As String
         
    tColScanner(2) = "S/N"
    tColScanner(3) = "Date livraison"
    tColScanner(4) = "Code rouleaux"
     
    tColIPS(1) = "Hardware Key"
    tColIPS(2) = "Vitesse"
    tColIPS(3) = "ID Boîtier"
    tColIPS(4) = "S/N"
    tColIPS(5) = "Wibu Key"
    tColIPS(6) = "Software Key"
     
    tColPC(1) = "Modèle"
    tColPC(2) = "S/N"
    tColPC(3) = "Date livraison"
    tColPC(4) = "Nom"
         
    nRow = 1                       ' devra être modifié!!!!!!!!!!!!
    Sheets("Inventaire" ).Activate    ' devra être supprimé
     
    ' Sauver les données dans les tableaux
    '
     
    ' Renseignements d'adresse (début)
    tAdr(1) = Cells(nRow, 1)
    nJ = 3
    For nI = 2 To 5
        tAdr(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    'Renseignements du scanner
    For nI = 0 To 4
        tScanner(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    'Renseignements IPS
    For nI = 1 To 6
        tIPS(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
 
    'Renseignements PC de scan
    For nI = 0 To 4
        tPCScan(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    'Renseignements PC DBExtractor
    For nI = 0 To 4
        tPCExtract(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    'Renseignements d'adresse (fin)
    nJ = nJ + 1
    For nI = 6 To 8
        tAdr(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    '
    '                                       Remplir la page Poste
    Sheets("Poste" ).Activate
    ' Supprimer le contenu et les formats
    Range("A1:E50" ).ClearContents
    Range("A1:E50" ).ClearFormats
    ' Largeur de colonnes
    Columns("A:A" ).ColumnWidth = 22
    Columns("A:A" ).HorizontalAlignment = xlRight
    Columns("B:B" ).ColumnWidth = 22
    Columns("C:C" ).ColumnWidth = 2
    Columns("D:D" ).ColumnWidth = 22
    Columns("D:D" ).HorizontalAlignment = xlRight
    Columns("E:E" ).ColumnWidth = 22
     
    ' Remplir En-tête
    Range("A1:A2" ).Font.Size = 15
    Range("A1:A2" ).Font.Bold = True
    Cells(1, 1).Value = "Description d'un poste de travail à"
    Cells(2, 1).Value = tAdr(3) + " " + tAdr(4)
    With Range("A1:E1" )
        .Merge
        .HorizontalAlignment = xlCenter
    End With
    With Range("A2:E2" )
        .Merge
        .HorizontalAlignment = xlCenter
    End With
     
     
    ' Adresse
     
    nRow = 4
    nOldRow = nRow
    nMaxRow = 1
    nCol = 1
     
    Cells(nRow, nCol).Value = "Adresse"
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tAdr(1) + " ) "
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "Ressort de Cour d'appel : "
    Cells(nRow, (nCol + 1)).Value = tAdr(5)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "Service : "
    Cells(nRow, (nCol + 1)).Value = tAdr(6)
    nRow = nRow + 1
    Cells(nRow, (nCol + 1)).Value = tAdr(2)
    nRow = nRow + 1
    Cells(nRow, (nCol + 1)).Value = tAdr(3) + "  " + tAdr(4)
    nRow = nRow + 1
    If tAdr(7) <> "" Then
        Cells(nRow, nCol).Value = "Local : "
        Cells(nRow, (nCol + 1)).Value = tAdr(7)
        nRow = nRow + 1
    End If
    If tAdr(8) <> "" Then
        Cells(nRow, nCol).Value = "Tél : "
        Cells(nRow, (nCol + 1)).Value = tAdr(8)
        nRow = nRow + 1
    End If
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
     
    ' Scanner
    nRow = nRow + 1
    nOldRow = nRow
    Cells(nRow, nCol).Value = "Scanner"
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tScanner(0) + " ) "
    Cells(nRow, (nCol + 1)).Value = tScanner(1)
    nRow = nRow + 1
    For nI = 2 To 4
        Cells(nRow, nCol).Value = tColScanner(nI) + " : "
        Cells(nRow, (nCol + 1)).Value = tScanner(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
     
    ' IPS
    nRow = nOldRow
    nCol = 4
    Cells(nRow, nCol).Value = "IPS"
    nRow = nRow + 1
    For nI = 1 To 6
        Cells(nRow, nCol).Value = tColIPS(nI) + " : "
        Cells(nRow, (nCol + 1)) = tIPS(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
     
         
    ' PC de scan
    ' nOldRow = nMaxRow + 1
    nRow = nRow + 1
    nOldRow = nRow
    nCol = 1
    Cells(nRow, nCol).Value = "PC de scan"
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tPCScan(0) + " ) "
    nRow = nRow + 1
    For nI = 1 To 4
        Cells(nRow, nCol).Value = tColPC(nI) + " : "
        Cells(nRow, (nCol + 1)) = tPCScan(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
         
    ' PC DBExtractor
    nRow = nOldRow
    nCol = 4
    Cells(nRow, nCol).Value = "PC DB Extractor"
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tPCExtract(0) + " ) "
    nRow = nRow + 1
    For nI = 1 To 4
        Cells(nRow, nCol).Value = tColPC(nI) + " : "
        Cells(nRow, (nCol + 1)) = tPCExtract(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
End Sub


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2158795
vave
Nice to meet me
Posté le 02-10-2012 à 07:16:58  profilanswer
 

Salut,
 
J'ai regardé ta macro hier et ça fonctionne assez bien.
Tu veux faire quoi de plus ?
 
Et pourquoi tu ne garde pas un template de la feuille destinée à l'impression en ne modifiant que les données variables ?
Ca éviterait toutes les opérations de mise en page.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2158807
BrisChri
Since 1956
Posté le 02-10-2012 à 09:15:06  profilanswer
 

Il me reste à encadrer les données par groupes (adresse, scanner, ips et les données PC), pas grand chose mais rendant la lecture plus claire.

 

Certaines données peuvent être absentes (tel et/ou local, données dans les dernières colonnes), l'impression en tient compte, scanner et ips sont plus ou moins bas.

 

Avec un cadre. Je ne trouve pas la façon de limiter à la bordure extérieure.

 

Private Sub Cadre(nOldRow As Integer, nRow As Integer, nCol As Integer)
    Cells(nOldRow, nCol).Font.Size = 11
    Cells(nOldRow, nCol).Font.Italic = True
    Cells(nOldRow, nCol).Interior.Color = RGB(174, 240, 194)
    Range(Cells(nOldRow + 1, nCol), Cells(nRow - 1, nCol + 1)).Borders.Weight = 2
    Range(Cells(nOldRow, nCol), Cells(nOldRow, nCol)).Borders.Weight = 2
End Sub


Message édité par BrisChri le 02-10-2012 à 09:20:48

---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2158814
vave
Nice to meet me
Posté le 02-10-2012 à 10:03:40  profilanswer
 

Si tu ne veux que les bordures extérieures, tu peux utiliser la propriété BorderAroud.
 
Extrait de l'aide vba :

Citation :

Syntaxe
 
expression.BorderAround(LineStyle, Weight, ColorIndex, Color, ThemeColor)
 
expression   Variable qui représente un objet Range.
 
Paramètres
 
Nom Obligatoire/Facultatif Type de données Description  
LineStyle Facultatif Variante Une des constantes de XlLineStyle spécifiant le style de ligne pour la bordure.  
Weight Facultatif XlBorderWeight Épaisseur de la bordure.  
ColorIndex Facultatif XlColorIndex Couleur de la bordure, sous forme d’index dans la palette de couleurs ou sous forme de constante XlColorIndex.  
Color Facultatif Variante Couleur de la bordure, sous forme de valeur RVB.  
ThemeColor Facultatif Variant Couleur de thème sous forme d’un index dans le thème de couleurs actuel ou sous forme d’une valeur XlThemeColor.  


 
Pour ta macro (sans tester) :

Code :
  1. Range(Cells(nOldRow, nCol), Cells(nOldRow, nCol)).borderaround xlContinuous, xlThin, xlColorIndexAutomatic


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2158858
BrisChri
Since 1956
Posté le 02-10-2012 à 14:45:50  profilanswer
 

Trouvé aussi mais j'ai été appelé à l'extérieur, d'où l'absence de réaction.
Borders, malgré son nom, fait le quadrillage; il manque une doc sur les valeur de poids (Weight=0, pas de quadrillage, = 1 donne un pointillé, = 2 donne une ligne fine, etc), je n'ai pas trouvé le maximum possible.
BorderAround ne s'occupe que de la bordure.

Private Sub Cadre(nOldRow As Integer, nRow As Integer, nCol As Integer)
    Cells(nOldRow, nCol).Font.Size = 11
    Cells(nOldRow, nCol).Font.Italic = True
    Cells(nOldRow, nCol).Interior.Color = RGB(174, 240, 194)
    Range(Cells(nOldRow + 1, nCol), Cells(nRow - 1, nCol + 1)).BorderAround Weight:=xlThin
    Range(Cells(nOldRow, nCol), Cells(nOldRow, nCol)).Borders.Weight = 2
End Sub


 
Un grand merci pour ce début, et oui, il y aura une suite...


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2158859
BrisChri
Since 1956
Posté le 02-10-2012 à 15:14:34  profilanswer
 

vave a écrit :

Salut,
...
Et pourquoi tu ne garde pas un template de la feuille destinée à l'impression en ne modifiant que les données variables ?
Ça éviterait toutes les opérations de mise en page.


Plusieurs raisons.

  • La langue:

La Belgique est un pays bilingue.
Une macro en FR, une en NL, d'accord. Pas deux feuilles de résultats.

  • Les données:

Le nombre de ligne est fonction des données. C'est une raison qui est valable pour le contenu, pas pour le titre.

  • Des macros.

Quand celle-ci sera finie en FR et traduite en NL, une seconde macro sera à écrire: sur base d'un filtre actif.
Et la page d'impression (appelée poste pour la mise-au point) sera unique pour ces deux macros en deux langues.
Et on pourra ajouter autant de macro que nécessaire sans avoir à ajouter des feuilles au classeur.
 
Je pense que ce sont des raisons valables.
Si tu as 2 ou 3 macro d'impression à faire pour une feuille Excel base de données ou tableur, une feuille impression suffit.


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
mood
Publicité
Posté le 02-10-2012 à 15:14:34  profilanswer
 

n°2158860
vave
Nice to meet me
Posté le 02-10-2012 à 15:36:14  profilanswer
 

BrisChri a écrit :


Plusieurs raisons.
[...]

  • Les données:

Le nombre de ligne est fonction des données. C'est une raison qui est valable pour le contenu, pas pour le titre.
[...]


J'y avais pensé mais dans l'état, ta macro ne prend à aucun moment en compte un nombre variable de données.
Tu comptes le gérer plus tard ?


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2158902
BrisChri
Since 1956
Posté le 02-10-2012 à 23:24:42  profilanswer
 

C'est déjà le cas...
 

   Cells(nRow, (nCol + 1)).Value = tAdr(3) + "  " + tAdr(4)
    nRow = nRow + 1
    If tAdr(7) <> "" Then
        Cells(nRow, nCol).Value = "Local : "
        Cells(nRow, (nCol + 1)).Value = tAdr(7)
        nRow = nRow + 1
    End If
    If tAdr(8) <> "" Then
        Cells(nRow, nCol).Value = "Tél : "
        Cells(nRow, (nCol + 1)).Value = tAdr(8)
    End If


 
...depuis la première macro postée ici.
 
Mais bon, quelques lignes de code sur ... un peu plus que ça, ça ne se voit pas toujours.
Et je m’aperçois qu’il manque une ligne  "nRow = nRow + 1 " (If tAdr(8) <> "" Then)
 
:)


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2158911
vave
Nice to meet me
Posté le 03-10-2012 à 06:46:25  profilanswer
 

Ah oui, au temps pour moi, j'avais pas vu que tu testais les cellules vides  :jap:


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2159239
BrisChri
Since 1956
Posté le 05-10-2012 à 08:58:26  profilanswer
 

Quelques renseignements utiles pour une mise-en-page (PageSetup)
http://cisternino.free.fr/informat [...] che_10.pdf
 
http://cisternino.free.fr/informat [...] el_vba.htm


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2159240
BrisChri
Since 1956
Posté le 05-10-2012 à 09:05:13  profilanswer
 

Et un blog VBA - Tips & Tricks


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2159279
BrisChri
Since 1956
Posté le 05-10-2012 à 14:56:15  profilanswer
 

Pour ne pas faire de bêtise, quelques conseils.
Et ce n'est pas moi qui les donne, je me contente (si on peut dire) de les attendre...
 
J'ai la macro ImprimerLigne qui ne fonctionne qu'en français (elle gère des titres). J'aimerais l'utiliser pour les 2 langues et pour une seconde macro à rendre bilingue.
 

  • ImprimerLigneFR

- Activée par un raccourci clavier (CTRL+l), je sais que c'est FR
- appeler RemplirTableauxFR
     - remplir mes tableaux tCol? avec les valeurs en français
     - remplir une nouvelle variable cTitre
- nRow = ActiveCell.Row
- appeler ImprimerLigne(nRow, cTitre)
 

  • ImprimerLigneNL

- Activée par un raccourci clavier (CTRL+L), je sais que c'est NL
- id pour le reste
 

  • ImprimerFiltreFR

- Activée par un raccourci clavier (CTRL+f), je sais que c'est FR
- appeler RemplirTableauxFR
     - remplir mes tableaux tCol? avec les valeurs en français
     - remplir une nouvelle variable cTitre
- for nX = xxx to nXX  
     nRow est la valeur de la ligne (son numéro), si on utilise un filtre, je sais combien il y a de lignes résultats, mais j'ignore le numéro des lignes. Je dois encore chercher comment faire.
     appeler ImprimerLigne (nRow, cTitre)
 
Est-ce que ça vous semble cohérent ou j'ai oublié quelque chose?
     


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2159895
BrisChri
Since 1956
Posté le 11-10-2012 à 15:18:08  profilanswer
 

J'ai un peu de temps, je reprends mon travail où je l'ai laissé... et je coince.
 
Si mon tableau de libellés doit être public, comment le créer?
 

option explicit
Sub RemplirTableauxFR()
   public dim tLibelles(2) as string
   tLibelles(1) = "mkjsdbc"
   tLibelles(2) = "sucdb"
End Sub
 
Sub ImprimerLigne(nRow as Integer)
   For nI = 1 To 2
        Cells(nRow, nCol).Value = tLibelles(nI) + " : "
        Cells(nRow, (nCol + 1)) = tValeurs(nI)
        nRow = nRow + 1
    Next nI
End Sub
 
Sub ImprimerLigneFR()
   RemplirTableauxFR
      ...
   ImprimerLigne(nRow)
   ...
End Sub


(Quelques définitions manquantes, mais ce n'est pas le sujet)
ou autrement?


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2159898
vave
Nice to meet me
Posté le 11-10-2012 à 15:33:07  profilanswer
 

Il faut que tu le déclares en dehors d'un module :

Code :
  1. option explicit
  2. public dim tLibelles(2) as string
  3. Sub RemplirTableauxFR()
  4.    tLibelles(1) = "mkjsdbc"
  5.    tLibelles(2) = "sucdb"
  6. End Sub
  7. Sub ImprimerLigne(nRow as Integer)
  8.    For nI = 1 To 2
  9.         Cells(nRow, nCol).Value = tLibelles(nI) + " : "
  10.         Cells(nRow, (nCol + 1)) = tValeurs(nI)
  11.         nRow = nRow + 1
  12.     Next nI
  13. End Sub
  14. Sub ImprimerLigneFR()
  15.    RemplirTableauxFR
  16.       ...
  17.    ImprimerLigne(nRow)
  18.    ...
  19. End Sub


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2159902
BrisChri
Since 1956
Posté le 11-10-2012 à 15:52:37  profilanswer
 

Merci.
Je vais pouvoir passer au NL maintenant.
 


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2159959
BrisChri
Since 1956
Posté le 12-10-2012 à 00:19:19  profilanswer
 

C'est fait, c'est fezu...
Demain, je mets les macros et la dernière version du fichier en ligne.
 
:jap: (et même deux fois) :)


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2159985
BrisChri
Since 1956
Posté le 12-10-2012 à 09:40:45  profilanswer
 

J'ai complété le fichier (il y a plus de colonnes) et la page d'impression (il n'y a plus de trou)
ImprimerLigneFR est lié au raccourci [ctrl] + l
ImprimerLigneNL est liée au raccourci [ctrl] + [Maj] + L
Il n'y a pas d'obligation de le faire mais ces raccourcis sont notés sur la page "Impression".
 

Option Explicit
    ' Créer les tableaux libellés
     
    Public tColAdr(6) As String
    Public tColContact(1) As String
    Public tColScanner(4) As String
    Public tColIPS(6) As String
    Public tColPC(4) As String
    Public tAdr(10) As String
    Public tScanner(4) As String
    Public tIPS(6) As String
    Public tPCScan(4) As String
    Public tPCExtract(4) As String
    Public tContact(8) As String
     
    Public cTitre As String
       
Private Sub Cadre(nOldRow As Integer, nRow As Integer, nCol As Integer)
 
    ' Auteur: Ch.Brissa
    ' Titre en couleur et cadre autour d'une section
     
    Cells(nOldRow, nCol).Font.Size = 11
    Cells(nOldRow, nCol).Font.Italic = True
    Cells(nOldRow, nCol).Interior.Color = RGB(174, 240, 194)
    Range(Cells(nOldRow + 1, nCol), Cells(nRow - 1, nCol + 1)).BorderAround Weight:=xlThin
    Range(Cells(nOldRow, nCol), Cells(nOldRow, nCol)).Borders.Weight = 2
End Sub
Private Sub ImprimerLigne(nRow As Integer)
 
    ' Auteur: Ch.Brissa
    ' Impression proprement dite
         
    ' Déclarations
    Dim nI As Integer
    Dim nJ As Integer
         
    Dim nOldRow As Integer
    Dim nMaxRow As Integer
    Dim nCol As Integer
         
    ' Sauver les données dans les tableaux
     
    ' Renseignements d'adresse (début)
    tAdr(1) = Cells(nRow, 1)
    nJ = 3
    For nI = 2 To 5
        tAdr(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    ' Renseignements du scanner
    For nI = 0 To 4
        tScanner(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    ' Renseignements IPS
    For nI = 1 To 6
        tIPS(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
    If tIPS(2) <> "" Then           ' vitesse en ppm
        tIPS(2) = tIPS(2) + " ppm"
    End If
 
    ' Renseignements PC de scan
    For nI = 0 To 4
        tPCScan(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    ' Renseignements PC DBExtractor
    For nI = 0 To 4
        tPCExtract(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    ' Renseignements d'adresse (fin)
    For nI = 6 To 10
        tAdr(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    ' Renseignements de contacts
    For nI = 1 To 8
        tContact(nI) = Cells(nRow, nJ)
        nJ = nJ + 1
    Next nI
     
    '
    '                                       Remplir la page Impression
    Sheets("Impression" ).Activate
    '                                       Supprimer les formats et le contenu
    Range("A1:AE72" ).ClearFormats
    Range("A1:AE72" ).ClearContents
       
    ' Papier
    With ActiveSheet.PageSetup
        .Orientation = xlLandscape
        .PaperSize = xlPaperA4
        .CenterHorizontally = True
        .LeftFooter = Format(Now(), "dddd d mmmm yyyy" )
        .CenterFooter = "BrisChri"
        .RightFooter = Format(Now(), "h\Hmm" )
    End With
    ' Largeur de colonnes
    Columns("A:A" ).ColumnWidth = 22
    Columns("A:A" ).HorizontalAlignment = xlRight
    Columns("B:B" ).ColumnWidth = 33
    Columns("B:B" ).HorizontalAlignment = xlLeft
    Columns("C:C" ).ColumnWidth = 2
    Columns("D:D" ).ColumnWidth = 22
    Columns("D:D" ).HorizontalAlignment = xlRight
    Columns("E:E" ).ColumnWidth = 33
    Columns("E:E" ).HorizontalAlignment = xlLeft
     
    ' Remplir En-tête
    Range("A1:A2" ).Font.Size = 15
    Range("A1:A2" ).Font.Bold = True
    Cells(1, 1).Value = cTitre
    Cells(2, 1).Value = tAdr(3) + " " + tAdr(4)
    With Range("A1:E1" )
        .Merge
        .HorizontalAlignment = xlCenter
    End With
    With Range("A2:E2" )
        .Merge
        .HorizontalAlignment = xlCenter
    End With
     
     
    ' Adresse
     
    nRow = 4
    nOldRow = nRow
    nMaxRow = 1
    nCol = 1
     
    Cells(nRow, nCol).Value = tColAdr(1)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tAdr(1) + " ) "
    nRow = nRow + 1
    Cells(nRow, nCol).Value = tColAdr(2)
    Cells(nRow, (nCol + 1)).Value = tAdr(5)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = tColAdr(3)
    Cells(nRow, (nCol + 1)).Value = "(" + tAdr(6) + " ) " + tAdr(7)
    nRow = nRow + 1
    Cells(nRow, (nCol + 1)).Value = tAdr(2)
    nRow = nRow + 1
    Cells(nRow, (nCol + 1)).Value = tAdr(3) + "  " + tAdr(4)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = tColAdr(4)
    Cells(nRow, (nCol + 1)).Value = tAdr(8)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = tColAdr(5)
    Cells(nRow, (nCol + 1)).Value = tAdr(9)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = tColAdr(6)
    Cells(nRow, (nCol + 1)).Value = tAdr(10)
    nRow = nRow + 1
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
     
     
    ' Contacts
    nRow = nOldRow
    nCol = 4
    Cells(nRow, nCol).Value = tColContact(0)
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tContact(1) + " )"
    For nI = 2 To 4
        Cells(nRow, (nCol + 1)).Value = tContact(nI)
        nRow = nRow + 1
    Next nI
    Cells(nRow, nCol).Value = "(" + tContact(5) + " )"
    For nI = 6 To 8
        Cells(nRow, (nCol + 1)).Value = tContact(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
     
     
    ' Scanner
    nRow = nMaxRow + 1              ' colonne de gauche
    nOldRow = nRow
    nCol = 1
    Cells(nRow, nCol).Value = "Scanner"
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tScanner(0) + " ) "
    Cells(nRow, (nCol + 1)).Value = tScanner(1)
    nRow = nRow + 1
    For nI = 2 To 4
        Cells(nRow, nCol).Value = tColScanner(nI) + " : "
        Cells(nRow, (nCol + 1)).Value = tScanner(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
     
    ' IPS
    nRow = nOldRow                  ' colonne de droite
    nCol = 4
    Cells(nRow, nCol).Value = tColIPS(0)
    nRow = nRow + 1
    For nI = 1 To 6
        Cells(nRow, nCol).Value = tColIPS(nI) + " : "
        Cells(nRow, (nCol + 1)) = tIPS(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
     
         
    ' PC de scan
    nRow = nMaxRow + 1              ' colonne de gauche
    nOldRow = nRow
    nCol = 1
    Cells(nRow, nCol).Value = "PC Scan"
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tPCScan(0) + " ) "
    nRow = nRow + 1
    For nI = 1 To 4
        Cells(nRow, nCol).Value = tColPC(nI) + " : "
        Cells(nRow, (nCol + 1)) = tPCScan(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
         
    ' PC DBExtractor
    nRow = nOldRow                  '  colonne de droite
    nCol = 4
    Cells(nRow, nCol).Value = "PC DB Extractor"
    nRow = nRow + 1
    Cells(nRow, nCol).Value = "(" + tPCExtract(0) + " ) "
    nRow = nRow + 1
    For nI = 1 To 4
        Cells(nRow, nCol).Value = tColPC(nI) + " : "
        Cells(nRow, (nCol + 1)) = tPCExtract(nI)
        nRow = nRow + 1
    Next nI
    nMaxRow = WorksheetFunction.Max(nMaxRow, nRow)
    Cadre nOldRow, nRow, nCol
     
    nRow = nRow + 1
    Cells(nRow, 1).Value = "Pour imprimer : "
    Cells(nRow, 2).Value = " [CTRL] + l"
    Cells(nRow, 4).Value = "Om te printen : "
    Cells(nRow, 5).Value = " [CTRL] + [Shift] + L"
     
    Cells(2, 1).Activate
    ActiveWindow.SelectedSheets.PrintPreview
     
 
End Sub
Sub ImprimerLigneFR()
 
    ' Auteur Ch.Brissa
    ' Impression en FR des données d'une ligne de la feuille inventaire sous forme de page A4 paysage
     
    ' arrêter la mise à jour de l'affichage
    Application.ScreenUpdating = False
 
    cTitre = "Description d'un poste de travail à"
     
    tColAdr(1) = "Adresse"
    tColAdr(2) = "Ressort de Cour d'appel : "
    tColAdr(3) = "Service : "
    tColAdr(4) = "Local : "
    tColAdr(5) = "Tél : "
    tColAdr(6) = "Login : "
     
    tColContact(0) = "Contact"
     
    tColScanner(2) = "S/N"
    tColScanner(3) = "Date livraison"
    tColScanner(4) = "Code rouleaux"
     
    tColIPS(0) = "IPS"
    tColIPS(1) = "Hardware Key"
    tColIPS(2) = "Vitesse"
    tColIPS(3) = "ID Boîtier"
    tColIPS(4) = "S/N"
    tColIPS(5) = "Wibu Key"
    tColIPS(6) = "Software Key"
     
    tColPC(1) = "Modèle"
    tColPC(2) = "S/N"
    tColPC(3) = "Date livraison"
    tColPC(4) = "Nom"
         
    ' Variables
    Dim nRow As Integer
     
    '                                       Début
    nRow = ActiveCell.Row
    ImprimerLigne nRow
    '                                       Fin
     ' activer la mise à jour de l'affichage
    Application.ScreenUpdating = True
 
End Sub
Sub ImprimerLigneNL()
 
    ' Auteur Ch.Brissa
    ' Impression en NL des données d'une ligne de la feuille inventaire sous forme de page A4 paysage
     
    ' arrêter la mise à jour de l'affichage
    Application.ScreenUpdating = False
 
    cTitre = "Beschrijving van een werkpost te"
     
    tColAdr(1) = "Adres"
    tColAdr(2) = "Ressort Hof van beroep : "
    tColAdr(3) = "Dienst : "
    tColAdr(4) = "Lokaal : "
    tColAdr(5) = "Tel : "
    tColAdr(6) = "Login : "
     
    tColContact(0) = "Contacten"
     
    tColScanner(2) = "S/N"
    tColScanner(3) = "Leveringsdatum"
    tColScanner(4) = "Rolnummer"
     
    tColIPS(0) = "IPS"
    tColIPS(1) = "Hardware Key"
    tColIPS(2) = "Snelheid"
    tColIPS(3) = "ID Boîtier"
    tColIPS(4) = "S/N"
    tColIPS(5) = "Wibu Key"
    tColIPS(6) = "Software Key"
     
    tColPC(1) = "Model"
    tColPC(2) = "S/N"
    tColPC(3) = "Leveringsdatum"
    tColPC(4) = "Naam"
     
         
    ' Variables
    Dim nRow As Integer
     
    '                                       Début
    nRow = ActiveCell.Row
    ImprimerLigne nRow
    '                                       Fin
     ' activer la mise à jour de l'affichage
    Application.ScreenUpdating = True
 
End Sub
 


 
Merci beaucoup oovaveoo  [:brischri99981:2]


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2159988
vave
Nice to meet me
Posté le 12-10-2012 à 09:51:19  profilanswer
 

You're welcome BrisChri [:cetrio:4]


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2159997
BrisChri
Since 1956
Posté le 12-10-2012 à 10:13:59  profilanswer
 

Thanks
 
Le fichier modifié est dispo à l'adresse http://brischri.angelfire.com/oovaveoo.xlsm


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2160004
BrisChri
Since 1956
Posté le 12-10-2012 à 11:05:24  profilanswer
 

Dernière question (pour cette macro): quelles modifications faut-il apporter pour que cette macro ne soit utilisable que depuis la feuille "Inventaire"?


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2160027
vave
Nice to meet me
Posté le 12-10-2012 à 13:47:02  profilanswer
 

Si tu veux pas t’embêter, tu peux sélectionner le bon onglet (celui qui contient les données) au début de la macro.
sheets("NomOnglet" ).activate
 
Sinon, il faut que tu reprennes toutes la macro en indiquant devant chaque adresse le nom de l'onglet
Par exemple :
Cells(nRow, nJ) => sheets("NomOnglet" ).Cells(nRow, nJ)  


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2160038
BrisChri
Since 1956
Posté le 12-10-2012 à 14:21:13  profilanswer
 

Je me suis mal fait comprendre.
Il faut être sur la bonne feuille pour lancer la macro. Si je la mets dans le ruban, elle est exécutable de n'importe quelle feuille, ce n'est pas le but.
J'avais mis le nom de la feuille et le numéro de ligne dans la première version, c'est plus facile pour tester, mais ça ne correspond pas à un usage IRL.
 
 
Quand je cherche sur le net, je trouve une méthode simple:
clic-droit sur le nom de la feuille / code
entrer la macro.
Je le fais et j'ai un message d'erreur:
erreur de compilation
des constantes, chaînes de longueurs fixe, tableaux, types définis par l'utilisateur et instruction Declare ne sont pas autorisés comme membres Public de modules d'objet


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2160215
vave
Nice to meet me
Posté le 15-10-2012 à 07:13:20  profilanswer
 

Tu peux mettre en Private les variables que tu as déclarées en Public.
Public = utilisables par tous les modules.
Private = utilisables par toutes les macros / fonction du module.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2160507
BrisChri
Since 1956
Posté le 17-10-2012 à 20:03:37  profilanswer
 

Je les ai laissées comme elles étaient, où elles étaient.
J'ai simplement ajouté deux macros sur la feuille. PrtFR et PrtNL. Ces macros n'ont qu'une seule ligne, appeler ImprimerLigneFR ou NL.
 
Le problème est que ces macros sont utilisables de n'importe quelle page :(


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2160540
vave
Nice to meet me
Posté le 18-10-2012 à 07:03:24  profilanswer
 

Tu peux faire comme ta première idée, à savoir de mettre ta macro dans le code de la feuille mais en passant les variables en private comme je te l'ai dit au dessus.  
Je pense que ça fonctionnera.


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
n°2160542
BrisChri
Since 1956
Posté le 18-10-2012 à 07:48:10  profilanswer
 

J'ai mis le code de la macro sur la feuille, elle s'appelle d'ailleurs "feuille1!PrtFR" mais reste accessible depuis toutes les pages.
Pourquoi? Mystère!


---------------
Si une frite n'a pas de mayo, alors elle ne pourra pas aller à la piscine
n°2160543
vave
Nice to meet me
Posté le 18-10-2012 à 08:14:25  profilanswer
 

Sinon, tu testes la feuille active :

Code :
  1. If activesheet.name = "ta feuille" then : call TaMacro


   


---------------
Bel ours Vave, je me dois de l’admettre. -Skyl"win"-  Mais toi tu es intelligent -Homerde- - Ce génie -SkylWINd- JDD S16M72 10:43:46 GMT-DTC +1
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA Excel][Résolu] Aide à la mise-en-page

 

Sujets relatifs
imprimer des feuilles excel générées à partir d'une liste de donnéesBesoin d'aide jointure
aide formule excel[DB2] Besoin d'aide pour un MERGE
besoin d'aide-language C svpBesoin d'aide svp
Java - Besoin d'aide pour les JPanelAide flashcode -> Lien vidéo
[C#] Expression régulières 
Plus de sujets relatifs à : [VBA Excel][Résolu] Aide à la mise-en-page


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR