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 boucle et de copiage de données [XL-2000]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de amerex
    Homme Profil pro
    Analyste Support et Développement
    Inscrit en
    Septembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Support et Développement
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 246
    Par défaut Problème de boucle et de copiage de données
    Bonjour!
    Je galère sur un bout de code;
    c'est une boucle, qui dois aller dans une feuille, et regarder dans la colone B (partir à B4 jusqu'à B65536), si la valeur de la cellule est égale à une date que j'ai dans une étiquette (dans mon formulaire).

    Si la valeur est égale, je veux que mon code copie la valeur de la cellule 2 case à droite (d'où mon Offset), dans une autre feuille (que j'enregistrerai plus tard dans un CSV). Mais mon code n'est pas bon, puisque c'est comme si je n'entrait jamais dans ma boucle (Dans le Do Loop Until...) (je n'ai pas mon MsgBox("CA MARCHE") qui s'affiche, donc j'en conclus que je n'entre pas dans ma boucle...

    Évidemment, si la valeur n'est pas égale à ma date, on passe à la prochaine (1 ligne plus bas, d'où mon «compteur» fait avec la variable «i»)

    Code VBA : 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
    Public Sub Create_GL_New()
    Sheets("_csvNEW").Activate
    ActiveSheet.Cells.Clear
    Dim i As Integer
    Dim mem As String
    Dim ligne As Long
    i = 4
        Do
            If Sheets("Membres").Range("B" & i).Value = lblDate.Caption Then
            MsgBox ("CA MARCHE")
    '            Sheets("Membres").Range("B" & i).Select
                mem = ActiveCell.Offset(0, 3).Value
                Sheets("_csvNEW").Range("A1").Value = "Nouveaux Membres"
                ligne = Sheets("_csvNEW").Range("A1").End(xlDown).Row + 1
                Sheets("_csvNEW").Range("A" & ligne) = mem
                i = i + 1
            End If
            If Sheets("Membres").Range("B" & i).Value <> lblDate.Caption Then
                i = i + 1
            End If
        Loop Until i = (Sheets("Membres").Range("H1").Value + 4)
    End Sub

    Voyez-vous quelque chose qui cloche?

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonsoir,

    2 remarques :

    1) Que vaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (Sheets("Membres").Range("H1").Value + 4)
    ? A mon avis pas 65535 comme tu le prétends ?

    2) Pour parcourir une colonne entièrement il vaut mieux commencer à la fin réelle au moyen de END(xlup) par exemple et remonter en décrémentant le compteur. Cela évite les bouclages inutiles.

    Bonne soirée.

    G@dz

  3. #3
    Membre éclairé Avatar de amerex
    Homme Profil pro
    Analyste Support et Développement
    Inscrit en
    Septembre 2007
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste Support et Développement
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2007
    Messages : 246
    Par défaut
    Bonsoir,

    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    (Sheets("Membres").Range("H1").Value + 4)
    Représente:

    La cellule H1 contient le nombre total d'enregistrements dans ma feuille.

    Mes enregistrements commencent à la ligne 4. Donc, si je prend le nombre total de mes enregistrements, plus 4 me donne, théoriquement, la dernière ligne qui comprend un enregistrement.


    Je vais faire une tentative du bas vers le haut... merci!

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 20/10/2009, 10h05
  2. [MySQL] Problème de boucle en récupérant les données dans un tableau
    Par Iratec dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 03/10/2009, 18h03
  3. [MySQL] Problème de boucle while sur base de données
    Par Darhyl dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 05/05/2006, 15h11
  4. Réponses: 3
    Dernier message: 11/01/2006, 17h44
  5. Problème de mise à jour de base de données
    Par poirier dans le forum ASP
    Réponses: 2
    Dernier message: 26/05/2004, 11h38

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