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 :

VBA Incrémentation à partir de 0


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Toujours étudiant même à 52 ans
    Inscrit en
    Avril 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Toujours étudiant même à 52 ans

    Informations forums :
    Inscription : Avril 2022
    Messages : 2
    Points : 4
    Points
    4
    Par défaut VBA Incrémentation à partir de 0
    Salut la communauté,

    depuis quelques jours, je travaille sur un projet personnel qui consiste à :

    à partir d'un fichiers .txt de données de voitures, extraire des listes telles que : Marque, Modèle, nom complet (marque, modèle, année), Puissance,... et créer les fichiers .txt correspondants (exemple : marque.txt, modele. txt,...),

    puis à les importer dans les colonnes correspondantes dans mon fichier excel.

    Une fois l'importation réalisée (colonnes B à F), j'incrémente la colonne A si la cellule adjacente en B est non vide, et ceci jusqu'à la dernière cellule non vide de la colonne B. ceci afin de donner un numero à chaque cellule non vide de B. Bien évidemment, il n'y a jamais de cellule vide car lors de la création des fichiers de listes, chaque donnée est directement écrite à la suite des unes des autres.

    Lorsque l'incrémentation est terminée, je peux faire un tri selon ce que je souhaite et ensuite exporter ma colonne A (dont les numéros ne suivent plus du fait du tri) dans un nouveau fichier .txt créé par le code.

    Pour réaliser cela, j'ai déja trouvé beaucoup d'aide et j'ai déja pu écrire toute la partie d'importation des listes. j'ai pu également écrire l'incrémentation et aussi la macro pour le tri et l'exportation de la colonne A en fichier .txt

    ben si déjà tout est fait, il ne reste plus rien à faire !!!

    alors oui et non...

    Comme je suis Super Débutant, j'ai bien fait du copié collé de ce que j'ai trouvé et j'ai adapté à ma sauce. Cependant, il me reste un petit HIC.....

    L'incrémentation qui commence en A2 du fait d'une ligne d'entête(s) devrait débuter par 0. Or, tout ce que j'ai trouvé commence par 1...

    J'aimerais donc de l'aide afin de pouvoir finaliser mon incrémentation (=si(B2<>"";A2=0;"" et ainsi de suite jusqu'à la dernière ligne de la colonne B non vide(donnée aléatoire car le fichier de base peut contenir 20 ligne de modèles de voiture comme il peut en contenir 900...) --> en script VBA), s'il vous plait.

    et accessoirement, je suis complètement open à toutes suggestions en ce qui concerne le foutoir dans mes modules, feuilles, macro,....

    Merci
    listecmlv.txt
    listecrdb.txt
    listectie.txt
    listemarque.txt
    listemodele.txt
    Rangement de garages2.xlsm

  2. #2
    Candidat au Club
    Homme Profil pro
    Toujours étudiant même à 52 ans
    Inscrit en
    Avril 2022
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Toujours étudiant même à 52 ans

    Informations forums :
    Inscription : Avril 2022
    Messages : 2
    Points : 4
    Points
    4
    Par défaut finalement je viens de trouver une solution....
    voici la solution que j'ai trouvé :
    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
     
    Sub compteur2()
    Range("A2").Select
    Dim ra As Range
    Dim F1 As Range
    Dim DernLigne As Long
        DernLigne = Range("b" & Rows.Count).End(xlUp).Row
        Set F1 = Sheets("Garages").Range("b2:b" & DernLigne - 1)
        Set ra = Range("A2")
        ra.Value = 0
            For Each c In F1
                If c.Value <> "" Then
                Set ra = ra.Offset(1, 0)
                ra.Value = ra.Offset(-1, 0).Value + 1
                Else: If c = "" Then Exit Sub
            End If
        Next c
    End Sub

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

Discussions similaires

  1. VBA - Boucle avec recopie incrémentée à partir d'une formule
    Par vbadeb dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 23/03/2015, 15h23
  2. acceder au code vba à partir d'un fichier excel 2003 depuis 97
    Par miko91 dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 18/10/2007, 17h01
  3. Réponses: 4
    Dernier message: 06/05/2007, 13h57
  4. Réponses: 2
    Dernier message: 01/02/2007, 18h50
  5. SQL en VBA - critère à partir d'un contrôle
    Par zouhenlai dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/07/2006, 15h17

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