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-E] Comment faire une boucle lorsqu'il y a des cellules vides


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut [VBA-E] Comment faire une boucle lorsqu'il y a des cellules vides
    Bonjour à tous,
    Je cherche depuis 2 jours ce problème :
    comment remplir la colonne B par rapport à des valeurs de la colonne A. jusque là c'est facile!!!! MAIS
    Dans ma colonne A j'ai une valeur "x", des cellules vides, une valeur "y" des cellules vides une valeur "z" des cellules vides....
    Colonne B :
    Si valeur de A = x alors valeur de B = 33
    copie 33 en colonne B jusqu'a la valeur "y" dans la
    colonne A
    Si valeur de A = y alors valeur de B = 40
    copie 40 en colonne B jusqu'a la valeur "z" dans la
    colonne A
    Et ainsi de suite.
    (La colonne A ne doit pas evoluer)

    Je vous remercie pour votre aide

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    et pour la dernière valeur trouvée dans la colonne A, tu copies dans la colonne B jusqu'à la 65535e ligne
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Non, j'allais jusqu'a la première cellule vide de B.

    Pour le moment, j'ai trouver un truc pas très orthodoxe pour m'en sortir....lorsque je serai un peu plus douée, je modifirai ce code.

    Merci de votre aide

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Le mieux ne serait-il pas que tu nous montres ton code ?
    Thierry est un farceur qui vient sur VBA quand il n'a plus l'occasion de rire sur VB6, alors t'occupe pas de lui
    A+

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Pour m'en sortir, j'ai complètement modifier mon fichier, et j'ai fait plein de boucles afin remplir cette fameuse colonne.

    Je pourrais t'envoyer ce que j'ai fait, mais je crois qu'ici ce n'est pas possible ?

    Je ne sais même pas comment on fait pour copier un code dans une discussion. (et pourtant je suis allée voir pas plus tard que ce matin dans l'aide....)

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par Tu
    mais je crois qu'ici ce n'est pas possible ?
    Mais si ! Facile ! Tu enregistres ton fichier, tu le Zip(es), tu sélectionnes le bouton avec le trombone et tu "UpLoad(es)" ton Zip. Puis tu fermes la fenêtre. Ensuite, tu retournes dans le bouton au trombone et tu sélectionnes ton fichier. Épicétou.
    Pour prendre le code sur le forum, tu le sélectionnes et tu fais Ctrl + c
    A+

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    LYN FOURNISSEURSRS.zip
    Ok, on va essayer.... Apparemment ça marche...

    Voilà mon fichier d'exportation.
    La macro qui traite la totalite du fichier c'est balance_fournisseurs.

    Je pense que le code est 10 fois trop long par rapport à ce que je veut faire, mais pas de moquerie ..... .........

    A+

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Je me moque jamais
    Bon, déjà, tu n'es pas obligé de sélectionner tes lignes ou tes colonnes pour les effacer. Par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        Rows("1:8").Delete
        Columns("a:d").Delete
        Columns("d").Delete
        Columns("e:i").Delete
    est plus court et plus rapide qu'avec des Select
    Pour le reste, je n'ai pas compris la finalité de la chose
    Quel est le but de tous ces effacements ?
    Je procèderais autrement.
    Une feuille avec les données à ne pas effacer, une copie de cette feuille que je pourrais compléter des informations "volatiles"
    Quand le travail est terminé sur cette copie, je la supprimerais et ferais une nouvelle copie pour une nouvelle mise à jour...
    mais je n'ai peut-être rien compris
    Tu dis
    A+

  9. #9
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Le fichier que tu as vu est exporté tel que de mon logiciel de compta SAP, je n'ai aucun moyen de le rendre + propre avant l'exportation. Et tu vois qu'il n'est pas exploitable.

    Ce traitement sert a avoir une balance ."txt", que j'importe à son tour dans un autre logiciel pour faire mes bilans.

    Voilà, tu sais tout, et avoue que la vie n'est si pas simple.....

  10. #10
    Expert confirmé Avatar de illight
    Homme Profil pro
    Analyste décisionnel
    Inscrit en
    Septembre 2005
    Messages
    2 338
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste décisionnel
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 338
    Points : 4 295
    Points
    4 295
    Par défaut
    SAP sort vraiment des trucs tout pourri parfois quand meme
    1. Avant de poster, et http://www.developpez.com/sources/
    2. Lors du post, n'oubliez pas, si besoin les balises CODE => voir ici pour l'utilisation
    3. N'oubliez pas le
    4. N'oubliez pas le si la réponse vous a été utile !

  11. #11
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    C'est bien Illight, mais une fois que tu as dis ça, ... !

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    bonjour annick
    tu as de la chance que j'ai arreté de fumer, je me cherche des problemes pour penser a autre chose (4heures sur celui là ).
    1 pour ton fichier, j'ai supposé :
    _ que ton fichier est toujour identique, meme si sa longueur et son contenu change
    _ que tu voulais un vrai fichier texte, et non un fichier qui se termine par .txt comme dans ta macro
    2 pour le chemin d'accés je l'ai placé au même endroit que l'emplacement du fichier original tu pourras toujour le modifier
    3 je trouve que les "***" tombent a point et je me demande si ce n'est pas toi qui les a mis pour stopper tes boucles. si c'est le cas, tu n'auras plus besoin de le faire, mais fais la modif indiquée sur ma macro
    4. je pense avoir tout compris, mais si c'est pas le cas, je ne dois pas etre loin de la vérité, donc prècise moi quoi et j'arrangerai

    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
    Public u As Integer
    Dim tabcompte()
    Sub bilan()
    derniereligne = Range("e65536").End(xlUp).Row
        For Each cel In Range("e1:e" & derniereligne)
            mLoop = 1
            If Not cel = "" And IsNumeric(cel) And Not cel.Offset(mLoop, 2) = "**********" Then ' si les étoiles ne font pas partie du fichier brut
                                                                                        ' remplacer par not isemptyCel.Offset(mLoop, 2)
            mCompte = InputBox("N° de compte pour " & cel)
                Do Until cel.Offset(mLoop, 2) = ""
                j = j + 1
                ReDim Preserve tabcompte(j)
                tabcompte(j) = Array(mCompte, cel.Offset(mLoop, 2).Value, cel.Offset(mLoop, 4))
                mLoop = mLoop + 1
                Loop
                End If
    Next cel
      chemin = ThisWorkbook.Path & "\"
    nomcl = InputBox("NOM FICHIER", "FLASH", "", 5000, 5000)
    Workbooks.Add
    Range("a1").Select
    For i = 1 To j
    Zonedecriture = "b" & i & ":d" & i
    Range(Zonedecriture) = tabcompte(i)
    Cells(i, 1) = Cells(i, 2) & Cells(i, 3)
    Next i
        ActiveWorkbook.SaveAs Filename:= _
            chemin & nomcl, FileFormat:=xlText _
            , CreateBackup:=False
        Application.DisplayAlerts = False
        ActiveWorkbook.Close
         Application.DisplayAlerts = False
     
    End Sub
    bonne journée

    ha, j'oubliais, cette macro remplace tes 4 macros et permet de conserver le fichier original.

  13. #13
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 19
    Points : 7
    Points
    7
    Par défaut
    Alsimbad,

    Excuse moi, mais je cherche depuis un moment, et je n'arrive pas a comprendre ou mettre ta macro par rapport aux miennes . Peux tu m'aider.

    merci beaucoup

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    annick, tu met ma macro a la place de tes 4 macro. pour qu'elle servent avec ton fichier sortie du logiciel, je suppose qu'il faut que tu colle les données sur une feuille de calcul, dans le fichier que tu a laissé sur le forum. ensuite tu lance la macro, et tu obtient un fichier texte, au même emplacement que ton fichier.

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

Discussions similaires

  1. [Smarty] comment faire une boucle
    Par wkd dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 19/08/2009, 13h36
  2. Réponses: 2
    Dernier message: 06/04/2007, 13h31
  3. [AJAX] Comment faire une boucle XMLHttpRequest qui marche ?
    Par lancelot_13 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 19/01/2007, 12h00
  4. [VBA-W]Comment faire un fractionnement lorsque l'on veut?
    Par gusrom86 dans le forum VBA Word
    Réponses: 5
    Dernier message: 23/02/2006, 11h24
  5. Comment faire une boucle ???
    Par HookerSeven dans le forum Access
    Réponses: 6
    Dernier message: 17/06/2005, 12h58

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