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 en colonne B


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Par défaut Incrémentation en colonne B
    Bonjour à tous,

    Existe t-il une manière simple pour pouvoir faire une incrémentation par rapport au contenu d'une cellule?
    Je m'explique:
    -Dans la colonne A j'ai des données de type string, dans chaque cellule de cette colonne j'ai une chaine de caractères.
    -Ma colonne B est vide et je souhaite que l'incrémentation se fasse dans cette colonne.
    -Je peut avoir plusieurs fois la même chaine de caractères mais dans des cellules de A différentes et la se pose mon problème.
    -Au cas où une chaine existante est encore trouvée dans ma colonne A, je dois incrementer en colonne B en face de la chaine et supprimé la ou les ligne(s) qui ne sert/servent plus.

    J'ai déjà quelques pistes mais pas très convainquantes jusqu'à présent, je vous donne le code que j'ai lutter à écrire ^^.Jusquèà présent j'ai un début de code d'incrémentation enfin je pense :

    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
    Sub recherche()
        Dim i As Long
        Dim j As Long
        Dim k As Long
        Dim Logiciel As String
        Dim FinTablo As Long
        Dim result As Boolean
     
        FinTablo = 0
        For j = 7 To 256 'Colonnes
            For i = 1 To 65536 'Lignes
                If i = 116 And j = 25 Then
                    If Feuil1.Cells(i, j).Value = "#N/A" Then
                        MsgBox "toto"
                    End If
                End If
     
                Logiciel = CStr(Feuil1.Cells(i, j).Value)
                result = Logiciel Like "*Mise à jour*" 'exclusions toutes les Mises à jour
                If result = False Then
                    For k = 1 To FinTablo + 1
                        If Logiciel <> "" Then
                            If Logiciel <> "#N/A" Then
                                If Logiciel = Feuil2.Cells(k, 1).Value Then
                                    Feuil2.Cells(k, 2).Value = Feuil2.Cells(k, 2).Value + 1
                                    Exit For
                                End If
                            End If
                        Else
                            Exit For
                        End If
                    Next k
                End If
                If k - 1 = FinTablo + 1 Then
                    Feuil2.Cells(k - 1, 1) = Feuil1.Cells(i, j).Value
                    Feuil2.Cells(k - 1, 2) = "1"
                    FinTablo = FinTablo + 1
                End If
            Next i
        Next j
        MsgBox ("Recherche terminée")
    End Sub
    Voila, mon code est correct enfin je pense, si quelques améliorations pouvais être faites. Je vous remercie d'avance pour votre aide à tous et toutes.

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Il serait préférable de mettre une fichier excel pour qu'il soit plus simple de comprendre ce que tu souhaites réaliser et pour permettre aux gens qui souhaitent t'aider de gagner du temps en ayant deja un fichier pour faire des essais.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Par défaut
    Salut AzelRoth et le forum
    -Dans la colonne A j'ai des données de type string, dans chaque cellule de cette colonne j'ai une chaine de caractères.
    -Ma colonne B est vide et je souhaite que l'incrémentation se fasse dans cette colonne.
    Ce que je crois comprendre d'après le texte :
    Tu as des valeurs en colonne A et tu veux n'en avoir, après traitement, qu'une seule, avec en B de la ligne le nombre de fois où cette valeur apparaissait

    Au vu de ça, je ne comprends pas tes boucles :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        For j = 7 To 256 'Colonnes
            For i = 1 To 65536 'Lignes
    Tu veux parcourir de la colonne G à la colonne IV sur les 65536 lignes ? Pour quoi faire ? Perdre du temps ? Mais sans doute ai-je mal compris le problème. De plus tu recherches des valeurs d'erreur, alors que tu n'en parles pas dans la description du problème! Je suis complêtement paumé! C'est le code qui est bon ? la description du problème ? Et si l'un et l'autre ne traite pas du même problème, pourquoi les mettre tous les deux ?
    Voila, mon code est correct
    Toi seul peut le dire parce que je sais pas ce que tu veux faire. Et encore, s'il était correct tu te limiterais dans la plage à scruter, au minimum à toute la zone d'utilisation de la feuille, et pas toute la feuille.
    A+

  4. #4
    Membre averti
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Par défaut
    Bonjour,

    Merci de répondre aussi vite.
    J'ai refais des modifs sur mon code ce matin. mais bon c'est pas mieux je n'arrives pas à incrémenter sur ma feuille 1 même en changeant les Feuil2 en Feuil1. Pour le moment il me fait le tout mais en feuille 2.

    Si vous avez une solution je suis preneur.
    Merci à tous.
    Fichiers attachés Fichiers attachés

  5. #5
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Je penses que dans un 1er temps il faut que tu tri tes entrées de ta colonne A par ordre alphabétique (enregistre une macro en sélectionnant toutes tes lignes puis en appuyant sur le bouton "A->Z" du menu)

    Ensuite il faut boucler sur les lignes une a une est regarder les ligne identique qui se suivent, puis supprimer les doublons.

    Si tu ne veux pas modifier l'ordre dans lesquels sont entrées les string en colonne A, alors il te faudra faire une recherche via .Find et supprimer les lignes doublon après les avoir comptabilisé.

    Commence a faire la trame de tn code et reviens nous
    a++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  6. #6
    Membre averti
    Inscrit en
    Février 2009
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 48
    Par défaut
    Salut,

    Je ne comprends le début lorsque tu me dis de faire :
    (enregistre une macro en sélectionnant toutes tes lignes puis en appuyant sur le bouton "A->Z" du menu).
    Faire la macro pas de problèmes, selectionner les lignes ok, mais la méthode "appuyant sur le bouton "A->Z" du menu", je ne comprends pas ce que tu veux dire par là.
    Est-ce une fonction de recherche sur Excel?
    pour le reste je devrais pas avoir trop de problèmes non plus.Merci pour ton aide.

  7. #7
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Quand je dis enregistrer une macro:
    Tu vas dans menu, Outils->Macro->Nouvelle macro, tu clique sur ok, a partir de maintenant excel va créer le code vba qui correspond au action que tu vas faire dans excel.
    Donc tu sélectionnes toutes les entrées de ta colonne A sans la 1er ligne (l'entête de ta colonne) puis tu clique sur le bouton A-Z qui te permet de trier par ordre alphabétique (c'est dans les bouton du menu)
    Tu clique ensuite sur le bouton arrêt pour stopper l'enregistrement.
    Tu vas voir dans VBA et tu y trouvera un module avec le code des actions que tu viens de realiser.
    Voila bon courage
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. Incrémenter une colonne avec un seul UPDATE
    Par rgomes dans le forum DB2
    Réponses: 3
    Dernier message: 28/08/2011, 18h54
  2. [Toutes versions] Incrémenter une colonne en fonction d'une autre
    Par simon17 dans le forum VBA Access
    Réponses: 9
    Dernier message: 03/11/2010, 16h27
  3. incrémentation automatique colonne
    Par masterdba dans le forum PL/SQL
    Réponses: 6
    Dernier message: 11/03/2009, 18h26
  4. Incrémentation numéro colonne
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 21
    Dernier message: 04/01/2008, 20h18
  5. Incrémenter valeur colonne
    Par cjacquel dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 28/11/2007, 17h14

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