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 :

Incrémentation d'une colonne avec lettre et chiffre [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut Incrémentation d'une colonne avec lettre et chiffre
    Bonjour le forum,

    Je me décide à poster après plusieurs heures de recherche. Voici mon problème :
    Je viens de créer un formulaire d'encodage de produits divers destinés à être stockés. J'ai donc d'abord créer le classeur ad hoc avec notamment une première feuille contenant une colonne A (par exemple) reprenant un N° code type : CS-001 puis CS-002 et ainsi de suite.
    J'essaye de trouver le code VBA qui me permettrait d'incrémenter d'une unité chaque fois que j'encode un nouveau produit.
    Malheureusement, en cherchant bien sur le forum et réfléchissant quelque peu , je n'arrive pas à solutionner ce problème. Pourriez-vous m'aider en sachant que j'ai ceci comme syntaxe VBA de départ :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Dim derligne As Integer
    Dim I as integer
     
      derligne = Sheets("Feuille1").range("A65556").End(xlUp).Row + 1 'On identifie la dernière ligne vide en partant du bas
     For I = 2 To derligne (pour 1ière cellule en A2)
    If Cells(I, 1).Value = "" Then Cells(I, 1).Value = Range("A" & Rows.Count).End(xlUp).Value +1  (valeur dernière cellule non vide, augmentée d'une unité) 
    Next I
    Malheureusement , j'obtiens un message d'erreur (Incompatibilité de type) et pourtant - Range("A" & Rows.Count).End(xlUp) - est bien une valeur ? et si je supprime le (+1), j'obtiens tout simplement la recopie de la valeur de la dernière cellule non vide soit CSxx (xx étant un nombre) et non cette valeur avec 1 unité ajoutée.
    Pourriez-vous envisager d'adapter le code soit avec la syntaxe donné ou une autre syntaxe qui me permette de bien m'orienter.
    Un très grand merci.

  2. #2
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Plutôt que passer par VBA.
    Je pense que les fonctions statistiques natives d'Excel répondraient à ton besoin.
    Voir
    Fonctions statistiques Excel

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  3. #3
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Re (bonjour),

    Probablement, mais là avec ta proposition je suis perdu.
    Bien que n'étant pas expert, je préfèrerais maintenir le VBA puisque tout mon formulaire est basé sur ce mode de programmation. De plus, cette petite application est destinée à un ami très proche qui désire gérer son stock avec efficace.
    A mon sens , il ne manque pas grand chose à ce code pour que cela fonctionne parfaitement mais je suis dans l'impasse.
    Alors encore merci de m'aider.
    Merci pour ta prompte réponse.

  4. #4
    Candidat au Club
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Novembre 2018
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2018
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour le forum,

    A tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub test()
        derligne = Sheets("Feuille1").Range("A65556").End(xlUp).Row + 1 'On identifie la dernière ligne vide en partant du bas
        For I = 1 To derligne
            If Range("A" & I) = "" Then
                a = Range("A" & I - 1)
                b = Right(a, 3) + 1
                a = "CS-" & I - 1
                Range("A" & I) = "CS-00" & b
            End If
        Next I
    End Sub
    Cordialement,

    IB

  5. #5
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Mieux vaut s'appliquer à déclarer les variables et attacher ses objets.
    Rigueur oblige.

    J'ai testé le code de Jacques-Henri.
    Code effectif.

    Quoi qu'il en soit, le code peut être simplifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Option Explicit
     
    Sub compte_2()
     
    Dim dercel As Range
     
    With ThisWorkbook.Worksheets("Feuille1")
            Set dercel = .Cells(.Rows.Count, 1).End(xlUp)
            .Range("A2", dercel).SpecialCells(xlCellTypeBlanks).Value = dercel.Value + 1
            Set dercel = Nothing
    End With
     
    End Sub
    Pour la méthode SpecialCells, voir ce lien

    SpecialCells

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  6. #6
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Tout d'abord merci de vous pencher sur mon souci mais après test des 2 propositions j'ai quand même un message d'erreur :

    Incompatibilité de type
    1. à la ligne b = Right(a, 3) + 1 (pour la première proposition)

    2. à la ligne .range("A2", dercel).SpecialCells(xlCellTypeLastCell).Value = dercel.Value + 1 (pour la seconde proposition)

    Merci encore si vous avez une autre idée.

    J'avoue que j'ai essayé de modifier l'un et l'autre votre code, compte tenu de mes minces connaissances en VBA mais aussi message d'erreur identique.

  7. #7
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Salut,

    Code testé et effectif.

    Affiche la fenêtre Exécution (CTRL + G) et place dans ton code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print dercel.Address
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Debug.Print .range("A2", dercel).SpecialCells(xlCellTypeLastCell).Count
    Obtiens-tu les bonnes valeurs (adresse de la dernière cellule et nombre de cellules vides)?

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  8. #8
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Bonsoir,
    Je ne connais pas cette procédure mais après essai je n'ai rien qui s'affiche.
    En suite au message d'erreur " incompatibilité de type" j'ai modifié la 1ière ligne du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     With ThisWorkbook.Worksheets("Feuille1").activate
    J'obtiens le message suivant " erreur d'exécution 424, objet requis" avec dercel surligné en jaune
    J'ai alors modifié la déclaration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      Dim as range par dim as long
    Le message est le suivant " erreur de compilation , objet requis" avec dercel surligné en jaune .

    Si vous pouviez voir qu'est ce qui pourrait solutionner le problème afin d'obtenir l'incrémentation voulue sur la colonne A , le point de départ étant la cellule A2 avec le code de gestion CS01 ou CS-01.

    Super merci pour le temps que vous passez.

  9. #9
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Une piste :
    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
     
    Sub test()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Maxi As Long
     
        With Worksheets("Feuil1")
     
            Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
     
            For Each Cel In Plage
     
                If Split(Cel.Value, "-")(1) > Maxi Then Maxi = Split(Cel.Value, "-")(1)
     
            Next Cel
     
            .Cells(Plage.Count + 2, 1).Value = "CS-" & Format(Maxi + 1, "000")
     
        End With
     
    End Sub
    Attention au nom de la feuille, dans mon code c'est "Feuil1", adapter si différent !

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    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 : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je ne connais pas cette procédure mais après essai je n'ai rien qui s'affiche.
    Ce que t'a conseillé MarcelG, que je salue au passage, en te proposant d'utiliser l'instruction Debug.Print est essentiel pour ne pas programmer en aveugle. Un peu comme un pilote qui vole sans visibilité et sans instruments

    Pour bien développer avec un langage quel qu'il soit, il est important de bien connaître son environnement de développement et les outils de débogage.
    Voici trois liens intéressants vers des tutoriels hébergés par Developpez.com
    1. Le débogage sous Visual Basic 6 & Visual Basic pour Application (1ère partie)
    2. Vos premiers pas dans l'éditeur de macros Excel
    3. Visual Basic Editor

    Si le premier traite du débogage pour Visual Basic, il est valable pour VBA sauf pour deux, trois fonctionnalités non présentes en VBA
    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

  11. #11
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Bonjour,

    A propos du poste de Philippe le rédacteur, je suis parfaitement d'accord avec son avis , toute proposition qui va dans le sens d'aide et toujours bienvenue et je l'ai interpréter dans ce sens.
    Mais voilà, vu le peu de connaissance en VBA, je ne voyais pas très bien le but , néanmoins - last but not least - j'ai tout de même essayé.
    Et donc merci à Marcel .

    J' essaye le code proposé par These dans la journée et reviens sur le forum pour vous tenir informés.

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    salut
    sans variable dans un bloc with
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Option Explicit
    Sub compte_2()
        With ThisWorkbook.Worksheets("Feuille1")
            With .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
                Debug.Print .Address ' adress de la plage 
                Debug.Print .SpecialCells(xlCellTypeBlanks).Address 'toute les  address de cellule vide de la plage 
                Debug.Print .Cells(.Cells.Count).Address 'adress de la derniere cellule de la plage 
                .SpecialCells(xlCellTypeBlanks).Value = .Cells(.Cells.Count).Value + 1 'inscription de la valeur +1 dans toutes les cellules vides 
            End With
        End With
    End Sub
    voir les debug dans la fentre d'execution
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut [XL-2007] Incrémentation d'une colonne avec lettre et chiffre (RESOLU)
    Merci Patrick,

    Je vais tester ta proposition également. Toutefois je ne vois pas la partie "CS" , c'est sans doute pour cela que tu indiques " sans variable.
    Néanmoins, si ce code ne fonctionne pas correctement pour mon application, il pourra sans doute servir pour une autre, le cas échéant .
    Bien évidemment, je te (sans oublier le forum) tiens au courant ; le but étant toujours d'en faire profiter les autres.

    En tout cas merci pour ta réponse.

    Aussi j'ai une très bonne information à communiquer , celle-ci étant que THESE m'a fourni la solution. Son code fonctionne parfaitement et correspond tout à fait à mon besoin. Toutefois, afin que cela serve aux autres, ce code appelle 3 remarques :

    1. il est impératif de nommer la bonne feuille comme le suggère THESE. De ce côté, je n'avais aucun doute.
    2. Ce code ne fonctionne pas si des cellules vides existent dans la feuille; et donc il s'agira d'adapter le code , si besoin est.
    3.Le format proposé par THESE est "000" de 3 chiffres, ce qui signifie que l'incrémentation ira jusque 999 mais dans mon cas il y a +/- 5000 articles, quantité qui va continuer à augmenter, j'ai tout simplement adapté avec "0000" , l'incrémentation fonctionnera jusque 9999
    .

    Bravo à THESE et merci à tous pour votre aide et collaboration active.

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    1ere question
    les cellules non vides ont els toutes le "CS-" devant le chifre ???

    2eme question
    dans le model de theze il trouve le maxi en bouclant et il est pas forcé que ce soit la derniere cellule qui est le max non ? sinon a quoi sert de boucler !! non ?????

    donc soit ta question a été mal formulée soit le code de theze ne repond pas exactement pile poil a tes a tes attentes

    j'aimerais bien avoir la reponse a ces deux questions
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Pour éviter les cellules vides ou les références différentes (préfixe différent) :
    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
     
    Sub test()
     
        Dim Plage As Range
        Dim Cel As Range
        Dim Maxi As Long
        Dim PrefixeRef As String
     
        With Worksheets("Feuil1")
     
     
            Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
            PrefixeRef = "CS-"
     
            For Each Cel In Plage
     
                If InStr(Cel.Value, PrefixeRef) <> 0 Then
                    If Split(Cel.Value, "-")(1) > Maxi Then Maxi = Split(Cel.Value, "-")(1)
                End If
     
            Next Cel
     
            .Cells(Plage.Count + 2, 1).Value = PrefixeRef & Format(Maxi + 1, "000")
     
        End With
     
    End Sub
    Le fait de boucler assure qu'on trouve bien la valeur maximale car si il y a des cellules vides (je me demande bien pourquoi dans une colonne de références ?) ou plusieurs références différentes le comptage des lignes donnera une valeur erronée et si la base a été triée sur une autre colonne, la dernière cellule de la colonne référence ne sera pas forcément la référence la plus élevée

  16. #16
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Je te suggèrerai de passer par un onglet de configuration.

    Imaginons que tu supprime la ligne CS-001, tu risque de redistribuer tous tes CS-???.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    range("config!A1")=range("config!A1")+1
    Début.print "CS-" & Format(range("config!A1"),"0000")

  17. #17
    Membre habitué
    Profil pro
    Cadre technique
    Inscrit en
    Mai 2006
    Messages
    194
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Cadre technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2006
    Messages : 194
    Points : 156
    Points
    156
    Par défaut
    Bonjour le forum, bonjour les développeurs,

    Je m'empresse de répondre à vos interrogations :

    les cellules vides dont je parle correspondent à la colonne A à partir de la cellule A2 et sont bien réellement vides jusque la dernière cellule non vide de cette colonne. Les lettres CS- n'y figurent pas.
    Et j'ai fait le test avec le CS- sans chiffre et bien le résultat est identique.
    D'autre part, dans le développement du code , Split et Max sont pour moi des inconnues, je ne connais nullement leur signification et leur rôle.
    Mais, ce dont je suis sûr c'est que le code proposé par THESE correspond adéquatement à mon problème et in fine ma question a bien été formulée.
    Doit-on se soucier de savoir comment est fabriqué un produit, s'il correspond parfaitement et idéalement au besoin que l'on attend?

    Dans ma colonne incrémentée, je n'aurai jamais de cellule vide puisque je voulais justement qu'à chaque encodage d'un nouveau produit, le n° de code s'incrémente automatiquement et à la suite. Et c'est bien là l'avantage d'un n° de code , étant ici une référence, comme un numéro de facture ou un numéro ID. L'on ne peut imaginer qu'en introduisant un nouvel article, toute la référence soit redistribuée, il faudrait alors référencer à nouveau tous les articles ==impensable.

    Et j'ai testé la proposition de Dysorthographie, et bien non, on ne redistribue pas , puisque dans le code de suppression , je ne programme aucunement un nouveau tri

    S'il s'avère par la suite - ou dans un autre projet actuellement en cours d'élaboration - que des cellules vides puisque exister alors je tiendrai compte de l'ajoute proposée par These et celle de Dysorthographie,
    .

    En tout cas,bravo à tous et merci une nouvelle fois pour votre aide experte et surtout efficace.

  18. #18
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Octobre 2020
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2020
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    Bonjour à tous, je me permet de réouvrir ce sujet car il pourrait me permettre de resoudre le problème qui me bloque depuis 1 semaine et rien sur internet.

    Mon objectif est simplement de mettre "Test- " en nom à la place de "CS- " et le faire increment Test - 1, Test - 2 à parti de la colonne "D10", j'ai essayé de changer les paramètre d'un code fourni (qui marche très bien) mais aucun moyen de le réaliser comme je le voudrai.

    Si quelqu'un aurait une solution, j'en serais grandement ravi.


    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
    Sub test()
     
        Dim Plage As Range
       Dim Cel As Range
        Dim Maxi As Long
        'Dim PrefixeRef As String
     
        With Worksheets("Feuil1")
     
    
            Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
            PrefixeRef = "CS-"     =>  "Test -"
     
           For Each Cel In Plage
    
              If InStr(Cel.Value, PrefixeRef) <> 0 Then
                    If Split(Cel.Value, "-")(1) > Maxi Then Maxi = Split(Cel.Value, "-")(1)
               End If
     
            Next Cel
     
            .Cells(Plage.Count + 2, 1).Value = PrefixeRef & Format(Maxi + 1, "000")
     
       End With
     
    End Sub
    Merci pour votre aide

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/05/2015, 17h14
  2. [XL-2010] Recherche valeur dans un tableau à 3 colonnes avec lettres et chiffres
    Par Remiroche.tw dans le forum Excel
    Réponses: 2
    Dernier message: 17/11/2012, 11h49
  3. Incrémenter une colonne avec un seul UPDATE
    Par rgomes dans le forum DB2
    Réponses: 3
    Dernier message: 28/08/2011, 18h54
  4. Réponses: 8
    Dernier message: 15/04/2005, 08h15
  5. Renommer une colonne avec ALTER TABLE...
    Par David.V dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/07/2004, 10h33

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