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 :

Encore une boucle qui ne marche pas


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Points : 478
    Points
    478
    Par défaut Encore une boucle qui ne marche pas
    Bonjour,

    Tout d'abord, un grand merci à vous tous qui m'avez apporté votre aide depuis mon inscription. Je débute en VBA et suis bluffé par ce que l'on peut faire avec. Bref, j'essaye de comprendre les bouts de code que vous m'avez si gentiment envoyé et qui m'aident beaucoup plutôt que de m'arrêter à les copier bêtement sans aller plus loin. Malgré ça, je n'arrive toujours pas à faire fonctionner les miennes... Un exemple avec l'exemple ci-dessous :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
     
    Dim Montant As Range, LastLig As Long
    LastLig = Range("A65536").End(xlUp).Row
     
        For Each Montant In Range("A2:A" & LastLig)
            If Montant.Value < 0 Then Range(Montant.Offset(0, 1)).Formula = "C" Else
            If Montant.Value > 0 Then Range(Montant.Offset(0, 1)).Formula = "D"
     
        Next
     
    End Sub
    Mon but : Pour chaque montant négatif, inscrire un C sur la cellule de droite ou un D pour un montant positif.
    Pourriez-vous me corriger mon erreur et surtout si vous avez la patience m'expliquer ce qui ne va pas dans ce bout de code SVP ?

    Merci d'avance !

    Runsh

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Re bonjour
    Ton code modifié
    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
    Sub test()
    Dim Montant As Range, LastLig As Long
     
    With Sheets("Feuil1")                            'à adapter
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
     
        For Each Montant In .Range("A2:A" & LastLig)
            If Montant.Value < 0 Then
                Montant.Offset(0, 1).Value = "C"
            Else
                Montant.Offset(0, 1).Value = "D"
            End If
        Next Montant
    End With
    End Sub
    Je ne sais quoi expliquer, en traduisant en français ça reste compréhensible

    Pour chaque cellule de A2:Axxx, si la valeur de la cellule est négative, alors écrire dans la cellule juste à droite C, sinon écrire dans la cellule juste à droite D.

    par précaution, aies l'habitude de définir pour chaque range, la feuille sur laquelle il appartient.

  3. #3
    Membre confirmé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Points : 478
    Points
    478
    Par défaut
    mercatog,

    Comme (j'espère) beaucoup de gens, j'ai débuté en VBA en passant par l'enregistreur puis en lisant comment Excel traduit celà.
    D'où = formula (lorsque l'on veut écrire quelque chose dans une cellule.) De plus dans ma tête . Value = il faut absolument une valeur numérique...

    Quoiqu'il en soit, merci (une fois de plus !)

    Runsh

  4. #4
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bref, j'essaye de comprendre les bouts de code que vous m'avez si gentiment envoyé et qui m'aident beaucoup plutôt que de m'arrêter à les copier bêtement sans aller plus loin. Malgré ça, je n'arrive toujours pas à faire fonctionner les miennes..


    l'intérêt des tutoriels, entre autre, est qu'il sont souvent accompagnés de code largement commenté, en essayant de les personnaliser, on part d'une base dont on sait qu'elle fonctionne, il y a même des tutos genre bien débuter avec...


    cordialement,

    Didier

  5. #5
    Membre confirmé Avatar de Runsh63
    Homme Profil pro
    Contrôleur de gestion
    Inscrit en
    Mars 2011
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Contrôleur de gestion
    Secteur : Transports

    Informations forums :
    Inscription : Mars 2011
    Messages : 476
    Points : 478
    Points
    478
    Par défaut
    C'est vrai que je profite beaucoup des réponses adaptées à mes besoins du moment mais vous avez raison Didier, j'essaierai de les lire quand j'aurai plus de temps.

    Cordialement,

    Runsh

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/01/2007, 12h03
  2. redirection sur une action qui ne marche pas
    Par nesbla dans le forum Struts 1
    Réponses: 5
    Dernier message: 04/08/2006, 20h16
  3. [JDOM] Une méthode qui ne marche pas
    Par kaninama dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 24/05/2006, 16h10
  4. appel d'une methode qui ne marche pas
    Par hansaplast dans le forum C++
    Réponses: 4
    Dernier message: 27/04/2006, 13h52
  5. Réponses: 1
    Dernier message: 28/07/2005, 14h21

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