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 :

Problème de fonction PRINT dans une boucle


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Par défaut Problème de fonction PRINT dans une boucle
    Bonjour à tous,
    je cherche, à l'aide d'une MACRO VBA, à exporter dans un fichier .txt les données d'une feuille excel.
    La colonne B représente le début d'activité et la colonne C la fin d'activité, sachant que plusieurs activités peuvent débuter en même temps mais se terminent toutes au même moment (je peux avoir plusieurs lignes consécutives avec la colonne B remplie et la colonne C vide).
    Je souhaite voir apparaître dans mon fichier .txt le début de créneau et la fin de créneau mais sans les débuts intermédiaires.
    J'utilise une boucle avec condition pour cela. Mais la fonction print ne marche pas dans la boucle.
    Je dois avoir un problème sur la condition mais je ne trouve pas.

    Si une bonne âme peut me venir en aide .

    Voici le code que j'ai élaboré :

    Code vb : 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
     
    Sub Export()
    Dim i As Long, j As Long, k As Long
    j = Worksheets("ACT").[A1].Value
    'récupère le nombre de ligne remplie sur la journée (nombre stocké dans la case A1
    k = 2
    nom = "Archives\" & Format(Date, "yyyymmdd") & Worksheets("Accueil").[G11].Value & ["_"] & Worksheets("Accueil").[A11].Value & ".txt"
    Open nom For Output As #1
    For i = 2 To i = j
    If Not IsEmpty(Range("C" & i)) Then
       Print #1, Worksheets("ACT").Range("B" & k).Value & " " & Worksheets("ACT").Range("C" & i).Value 
        k = i + 1
     End If
     Next
    Close #1
    End Sub

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut De la Logique …

    Bonjour !

    Citation Envoyé par chamou88 Voir le message
    Mais la fonction print ne marche pas dans la boucle.
    L'instruction Print fonctionne forcément sinon il y aurait évidemment un message d'erreur …

    Ce qui par contre ne fonctionne certainement pas c'est la logique dans le code,
    notamment en ce qui concerne la condition pour effectuer cette instruction !

    Suivre la progression du code en mode pas à pas via la touche F8 aiderait donc à trouver l'erreur de conception …

    Au passage il est notable de constater la référence à une feuille de calculs dans l'instruction Print
    et son absence remarquable dans la condition déclenchant pourtant cette instruction !

    ___________________________________________________________________________________________________________
    Je suis Paris, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 2
    Par défaut
    C'est bon trouvé, un = présent en trop qui empêche de rentrer dans la boucle ....
    Merci pour la fonction F8 que je ne connaissais pas .

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    On peut s'interroger sur la nécessité et l'utilité de la variable k ... alors qu'il suffit d'alimenter une matrice (ou encore mieux : une plage) , puis de copier in fine cette plage à sa destination

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

Discussions similaires

  1. vba fonction split dans une boucle
    Par mymoi dans le forum VBA Access
    Réponses: 6
    Dernier message: 26/05/2009, 10h17
  2. Problème de requête SQL dans une boucle While
    Par Astraya dans le forum VB.NET
    Réponses: 3
    Dernier message: 21/01/2009, 17h18
  3. [MySQL] Fonction récursive dans une boucle
    Par renaud26 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/02/2008, 12h18
  4. la fonction SOMMEPROD dans une boucle dynamique
    Par Mounamidou dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/10/2007, 16h32
  5. Fonction system() dans une boucle for
    Par banban56 dans le forum C
    Réponses: 3
    Dernier message: 16/06/2007, 18h48

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