IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Modification du Format d'une Cellule Excel


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut Modification du Format d'une Cellule Excel
    Salut tout le monde, j'ai un petit problème lors du transfert des données entre VB.net et Excel. je voudrai insérer une valeur Matricule(07775) de vb.net et lorsque je consulte le fichier Excel, je trouve le Matricule(7775). et je ne voudrai pas qu'à chaque fois je dans Excel (Format, Cellule, Nombre, personnaliser....)
    Qu'est ce que je dois faire !!!

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Tu fais comment pour alimenter le fichier Excel ?
    Tu veux mettre le format "Texte" dans Excel, c'est ça ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut
    salut. voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
      Private Sub CreerExcel(ByVal Version As Integer)
            Me.VerifFile()
            Dim i As Integer = 0
            Dim c1 As Integer = 0
            Dim c2 As Integer = 0
            Dim c3 As Integer = 0
            Dim c4 As Integer = 0
            Dim c5 As Integer = 0
            Dim c6 As Integer = 0
            Dim c7 As Integer = 0
     
            Dim d1 As Integer = 0
            Dim d2 As Integer = 0
            Dim d3 As Integer = 0
            Dim d4 As Integer = 0
            Dim d5 As Integer = 0
            Dim d6 As Integer = 0
            Dim d7 As Integer = 0
     
            Dim Cell1 As String = String.Empty
            Dim Cell2 As String = String.Empty
            Dim Cell3 As String = String.Empty
            Dim Cell4 As String = String.Empty
            Dim Cell5 As String = String.Empty
            Dim Cell6 As String = String.Empty
            Dim Cell7 As String = String.Empty
     
            Dim Xls As New Excel.Application()
            Dim B As String = String.Empty
            Dim C As String = String.Empty
            Dim D As String = String.Empty
            Dim E As String = String.Empty
            Dim F As String = String.Empty
            Dim G As String = String.Empty
            Dim H As String = String.Empty
     
            Dim Sheet As Object
            Xls.Workbooks.Add()
            If Version = 2003 Then
                Xls.ActiveWorkbook.SaveAs(Application.StartupPath & "\Retenu _Avance.xls")
            ElseIf Version = 2007 Then
                Xls.ActiveWorkbook.SaveAs(Application.StartupPath & "\Retenu_Avance.xlsx")
            Else
                MessageBox.Show("Une erreur est survenue")
            End If
            Xls.ActiveWorkbook.Worksheets("Feuil1").Name = "Retenue à l'Avance"
            Xls.ActiveWorkbook.Worksheets("Feuil2").Delete()
            Xls.ActiveWorkbook.Worksheets("Feuil3").Delete()
            Sheet = Xls.ActiveWorkbook.Worksheets("Retenue à l'Avance")
            Sheet.Select()
     
            Sheet.Range("B2").Value = DataGridView1.Columns(0).Name.ToString
            Me.Encadre("B2", Sheet)
     
            Sheet.Range("C2").Value = DataGridView1.Columns(1).Name.ToString
            Me.Encadre("C2", Sheet)
     
            Sheet.Range("D2").Value = DataGridView1.Columns(2).Name.ToString
            Me.Encadre("D2", Sheet)
     
            Sheet.Range("E2").Value = DataGridView1.Columns(3).Name.ToString
            Me.Encadre("E2", Sheet)
     
            Sheet.Range("F2").Value = "Echéance de L'avance"
            Me.Encadre("F2", Sheet)
     
            Sheet.Range("G2").Value = DataGridView1.Columns(5).Name.ToString
            Me.Encadre("G2", Sheet)
     
            Sheet.Range("H2").Value = DataGridView1.Columns(6).Name.ToString
            Me.Encadre("H2", Sheet)
            Sheet.Rows(2).Font.Bold = True
            For i = 1 To DataGridView1.RowCount
                B = DataGridView1.Item(0, (i - 1)).Value.ToString
                C = DataGridView1.Item(1, (i - 1)).Value.ToString
                D = DataGridView1.Item(2, (i - 1)).Value.ToString
                E = DataGridView1.Item(3, (i - 1)).Value.ToString
                F = DataGridView1.Item(4, (i - 1)).Value.ToString
                G = DataGridView1.Item(5, (i - 1)).Value.ToString
                H = DataGridView1.Item(6, (i - 1)).Value.ToString
     
                Sheet.Range("B" & (i + 2)).Value = B
                Me.Encadre("B" & (i + 2), Sheet)
     
                Sheet.Range("C" & (i + 2)).Value = C
                Me.Encadre("C" & (i + 2), Sheet)
     
                Sheet.Range("D" & (i + 2)).Value = D
                Me.Encadre("D" & (i + 2), Sheet)
     
                Sheet.Range("E" & (i + 2)).Value = E
                Me.Encadre("E" & (i + 2), Sheet)
     
                Sheet.Range("F" & (i + 2)).Value = F
                Me.Encadre("F" & (i + 2), Sheet)
     
                Sheet.Range("G" & (i + 2)).Value = G
                Me.Encadre("G" & (i + 2), Sheet)
     
                Sheet.Range("H" & (i + 2)).Value = H
                Me.Encadre("H" & (i + 2), Sheet)
     
                c1 = B.Length
                c2 = C.Length
                c3 = D.Length
                c4 = E.Length
                c5 = F.Length
                c6 = G.Length
                c7 = H.Length
     
            Next
     
     
            If Not Cell5 = String.Empty Then
                Sheet.Range(Cell5).Select()
                Xls.Selection.Columns.AutoFit()
            Else
                Sheet.range("F2").select()
                Xls.Selection.Columns.AutoFit()
            End If
     
            If Not Cell6 = String.Empty Then
                Sheet.Range(Cell6).Select()
                Xls.Selection.Columns.AutoFit()
            Else
                Sheet.range("G2").select()
                Xls.Selection.Columns.AutoFit()
            End If
     
            If Not Cell7 = String.Empty Then
                Sheet.Range(Cell7).Select()
                Xls.Selection.Columns.AutoFit()
            Else
                Sheet.range("H2").select()
                Xls.Selection.Columns.AutoFit()
            End If
     
     
            Xls.ActiveWorkbook.Save()
            Xls.Visible = True
        End Sub
     
        Private Sub Encadre(ByVal Cellule As String, ByVal Sheet As Object)
            Sheet.Range(Cellule).Borders(Excel.XlBordersIndex.xlDiagonalDown).LineStyle = Excel.Constants.xlNone
            Sheet.Range(Cellule).Borders(Excel.XlBordersIndex.xlDiagonalUp).LineStyle = Excel.Constants.xlNone
            With Sheet.Range(Cellule).Borders(Excel.XlBordersIndex.xlEdgeLeft)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .Weight = Excel.XlBorderWeight.xlThin
                .ColorIndex = Excel.Constants.xlAutomatic
            End With
            With Sheet.Range(Cellule).Borders(Excel.XlBordersIndex.xlEdgeTop)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .Weight = Excel.XlBorderWeight.xlThin
                .ColorIndex = Excel.Constants.xlAutomatic
            End With
            With Sheet.Range(Cellule).Borders(Excel.XlBordersIndex.xlEdgeBottom)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .Weight = Excel.XlBorderWeight.xlThin
                .ColorIndex = Excel.Constants.xlAutomatic
            End With
            With Sheet.Range(Cellule).Borders(Excel.XlBordersIndex.xlEdgeRight)
                .LineStyle = Excel.XlLineStyle.xlContinuous
                .Weight = Excel.XlBorderWeight.xlThin
                .ColorIndex = Excel.Constants.xlAutomatic
            End With
        End Sub
    le problème c'est quand il charge les données de l'application à Excel les cellules qui contiennent des numéros (0043) s'écrivent (43) hors ces numéros sont des Matricules

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Ce que tu peux faire sur les colonnes où se trouvent les matricules, c'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Sheet.range("XX").select()
    Xls.Selection.Columns.NumberFormat = "@";
    Ainsi, le format de la colonne sélectionnée sera un format texte et les chiffres apparaitront comme du texte. 0043, sera 0043 et non pas 43.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2007
    Messages : 99
    Points : 59
    Points
    59
    Par défaut
    Merci Skalp pour ton aide, mais ça n'a pas marché.
    voici le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Sheet.range("B2").select()
            Xls.Selection.columns.numberFormat = "@"
            Sheet.Range("B2").Value = DataGridView1.Columns(0).Name.ToString
            Me.Encadre("B2", Sheet)
    ainsi que les bibliothèques que j'ai importé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Imports System.IO
    Imports System.Xml
    Imports System.Text
    Imports Microsoft
    Imports Microsoft.Office
    Imports Microsoft.Win32
    peut être que c'est un problème de bibliothèques parce que quand j'écris le code que tu m'as donné et que je mette un "." la liste des méthodes ne s'affichent pas.
    désolé je suis encore débutant

  6. #6
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Peux-tu me décrire rapidement comment tu as procédé pour ajouter ces bibliothèques à ton projet ?

    As-tu Office installé sur ton poste, si oui, quelle version ?

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Points : 309
    Points
    309
    Par défaut
    Bonjour,

    Je sais qu'il s'agit d'un ancien post, mais vu qu'il m'a permit de résoudre mon problème et qu'il n'est pas indique comme résolu je me permet de le compléter.

    donc je déclare mon lien excel au début de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private ExcelInstance As Excel.Application = New Excel.Application
    et ensuite à l'endroit ou je desire forcer le passage en mode texte d'une sélection j'utilise le code de Skalp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
                'forcer le type de la cellule en format texte
                feuille.Range(feuille.Cells(ligne, col + 1), feuille.Cells(ligne, col + 1 + nbJourM)).Select()
                ExcelInstance.Selection.numberFormat = "@"
                '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    voilà voilà

    si ca peut aider

    encore merci Skalp

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Garder le format d'une cellule Excel
    Par peb12 dans le forum LabVIEW
    Réponses: 0
    Dernier message: 23/08/2011, 09h38
  2. [XL-2003] Possibilité de capter l'évènement de modification du format d'une cellule
    Par Airone1CF03 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2010, 18h46
  3. Changer le format d'une cellule excel
    Par SonnyFab dans le forum ASP.NET
    Réponses: 6
    Dernier message: 09/09/2010, 14h27
  4. Problème de format dans une cellule excel
    Par Nodoso dans le forum VB.NET
    Réponses: 6
    Dernier message: 13/12/2009, 18h26
  5. Réponses: 1
    Dernier message: 19/04/2008, 22h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo