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

Macros et VBA Excel Discussion :

Format colonne N° [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut Format colonne N°
    Bonjour

    j'ai un petit souci. Avec la ligne ci-dessous, j'ai dans la colonne "A" a chaque enregistrement "N° 1" et par ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("A" & Ligne) = "N°" & " " & Application.max(.Range("A3:A" & Ligne)) + 1
    Mon souci est a chaque enregistrement il me donne toujours "N°1" alors qu'il devrais y avoir N°2, N°3 ect..

    je pense que sa devrait venir de l'application.Max puisque ce n'est pas un nombre?

    Je vous remercie de votre aide

    Cordialement

    Maval

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Comment veux-tu avoir une réponse pertinente quand tu montres un morceau de ton code.
    La variable Ligne est incrémentée comment, par une boucle ?
    Pourquoi utiliser la fonction Max ?
    Avec une boucle simple, tu peux obtenir l'incrémentation de Ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Dim ligne As Long
     For ligne = 3 To 10
      Range("A" & ligne) = "N°" & " " & ligne
     Next
    Et si tu veux obtenir 1, 2 etc.... il suffit d'ajouter ligne-2
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Bonjour Corona,

    Voila mon 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
    Private Sub CommandButton3_Click()
    ' Nouvel adhérent
    Dim Cel As Range
    Dim ligne As Long
     
      If Me.ComboBox2.ListIndex = -1 Then
        MsgBox "Veuillez choisir la civilité"
        Exit Sub
      End If
     
      If Trim(Me.TextBox4) = "" Then
        MsgBox "Veuillez indiquer un Nom"
        Exit Sub
      End If
     
      If Trim(Me.TextBox5) = "" Then
        MsgBox "Veuillez indiquer un Prénom"
        Exit Sub
      End If
      'Stop
     
      'TextBox7, 9, 10, 11, uniquement en Numerique
    If Not IsNumeric(TextBox7) Then
           MsgBox "Le code postal doit être renseigné correctement.", vbOKOnly + vbInformation, "Erreur code postal"
           TextBox7 = ""
           TextBox7.SetFocus
           Exit Sub
     End If
    If Not IsNumeric(TextBox9) Then
           MsgBox "Le N° téléphone doit être renseigné correctement.", vbOKOnly + vbInformation, "Erreur N° téléphone"
           TextBox9 = ""
           TextBox9.SetFocus
           Exit Sub
     End If
     
    If Not IsNumeric(TextBox10) Then
           MsgBox "Le N° Fax doit être renseigné correctement.", vbOKOnly + vbInformation, "Erreur N° Fax"
           TextBox10 = ""
           TextBox10.SetFocus
           Exit Sub
     End If
     
    If Not IsNumeric(TextBox11) Then
           MsgBox "Le N° Portable doit être renseigné correctement.", vbOKOnly + vbInformation, "Erreur N° Portable"
           TextBox11 = ""
           TextBox11.SetFocus
           Exit Sub
     End If
      'Stop
     
      With Sheets("Feuil1")
        Set Cel = .Columns("C").Find(what:=Me.TextBox4 & " " & Me.TextBox5, LookIn:=xlValues, lookat:=xlWhole)
        If Not Cel Is Nothing Then
          If MsgBox("Un adhérent ayant ce nom existe déjà : On le modifie ?", vbInformation + vbYesNo, "Modification") <> vbYes Then Exit Sub
          ligne = Cel.Row
        End If
        EnCours = True
        If ligne = 0 Then
          ligne = .Range("C" & Rows.Count).End(xlUp).Row + 1
     
          Dim ligne As Long
     For ligne = 3 To 10
      Range("A" & ligne) = "N°" & " " & ligne
     Next
     
          '.Range("A" & ligne) = "N°" & " " & Application.max(.Range("A3:A" & ligne)) + 1
          '.Range("M" & Ligne) = Application.max(.Range("M3:M" & Ligne)) + 1
     
     
     
     
        End If
        .Range("B" & ligne) = Me.ComboBox2
        .Range("C" & ligne) = Me.TextBox4 & " " & Me.TextBox5
        .Range("D" & ligne) = Me.TextBox4
        .Range("E" & ligne) = Me.TextBox5
        .Range("F" & ligne) = Me.TextBox6
        .Range("G" & ligne) = Me.TextBox7
        .Range("H" & ligne) = Me.TextBox8
        .Range("I" & ligne) = Me.TextBox9
        .Range("J" & ligne) = Me.TextBox10
        .Range("K" & ligne) = Me.TextBox11
        .Range("L" & ligne) = Me.TextBox14
        .Range("L" & ligne).Value = Me.TextBox12 & "@" & Me.TextBox13
        Sheets("Feuil1").Hyperlinks.Add Range("L" & ligne), Address:=Cells(3, 12).Value
     
     
      End With
      EnCours = False
      Unload Me
      UserForm1.Show 0
     
        'Mise en ordre alphabétique sur la feuille
       Range("A3:M250").Select
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("C3"), _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Feuil1").Sort
            .SetRange Range("A3:M250")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
      Range("M1").Select
      'Stop
    End Sub
    @+

    Max

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    En fait tu veux indiquer dans la colonne A le n° de la dernière ligne occupée par la colonne C
    C'est un peu spécial parce-que finalement, tu pourrais tester directement la colonne A mais enfin c'est toi qui décide.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ligne = .Range("C" & Rows.Count).End(xlUp).Row
    .Range("A" & ligne) = "N°" & " " & ligne
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    343
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 343
    Par défaut
    Re,

    J'ai toujours le même N° qui s'affiche ?

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 175
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    J'ai testé et si tu as une valeur dans la cellule Cx, x représentant une ligne, tu devrais obtenir le n° de la ligne dans la variable ligne
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

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

Discussions similaires

  1. [DynamicJasper] Format colonnes
    Par romainw dans le forum Jasper
    Réponses: 2
    Dernier message: 03/02/2009, 10h31
  2. [Designer BO] Format colonnes
    Par arsinoe dans le forum Designer
    Réponses: 7
    Dernier message: 19/09/2007, 08h37
  3. format colonnes differentes zone de liste
    Par yoyoo dans le forum Access
    Réponses: 3
    Dernier message: 18/07/2006, 20h01
  4. format colonnes dans un (sous-)formulaire
    Par patbeautifulday1 dans le forum IHM
    Réponses: 4
    Dernier message: 14/02/2006, 18h00
  5. [VB.NET] définir format colonne datetime d'un datatable
    Par HULK dans le forum Windows Forms
    Réponses: 2
    Dernier message: 06/12/2005, 16h58

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