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 :

Probleme debutant VBA [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 24
    Par défaut Probleme debutant VBA
    Bonjour a tous,

    Desole pour le titre mais je ne savais pas comment expliquer mon probleme simple en quelques mots.

    Aux lignes 53, 58, 63 j'essai de modifier la cellule a quoi correspond ma variable Cel2. J'aimerais la modifer en prenant la cellule qui est juste en dessous. Ai-je bien code ces lignes pour que cela reponde a ce que je souhaite faire ?

    Merci d'avance !

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    Sub Test()
     
    Dim Cel1 As Range
    Dim Cel2 As Range
    Dim Plage As Range
    Dim Cel As Range
    Dim mydate As Date
    Dim Month_date(2) As Integer
     
    Month_date(0) = 0
    Month_date(1) = 0
    Month_date(2) = 0
     
    Set Cel1 = Sheet2.Range("B2")
    Set Cel2 = Sheet3.Range("J18")
    Set Plage = Range("B2:B20")
     
    For Each Cel In Plage
     
        If InStr(Cel.Value, "LP_LME") <> 0 Then
     
            For i = 0 To 2
     
                mydate = Cel1.Offset(i, 3).Value
     
                If Month(mydate) = 8 Then
     
                    Month_date(0) = 1
     
                ElseIf Month(mydate) = 9 Then
     
                    Month_date(1) = 1
     
                ElseIf Month(mydate) = 10 Then
     
                    Month_date(2) = 1
     
                End If
     
            Next i
     
        End If
     
    Next Cel
     
     
     
    For n = 0 To 2
     
        If Month_date(n) = 1 And n = 0 Then
     
            Cel2.Offset(0, 0).Value = "August"
            Set Cel2 = Cel2.Offset(1, 0)
     
        ElseIf Month_date(n) = 1 And n = 1 Then
     
            Cel2.Offset(0, 0).Value = "September"
            Set Cel2 = Cel2.Offset(1, 0)
     
        ElseIf Month_date(n) = 1 And n = 2 Then
     
            Cel2.Offset(0, 0).Value = "October"
            Set Cel2 = Cel2.Offset(1, 0)
     
        End If
     
    Next n
     
     
    End Sub

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur Industrialisation
    Inscrit en
    Mai 2015
    Messages
    222
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Industrialisation
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2015
    Messages : 222
    Par défaut
    Salut à toi,

    Oui.



    Je ne sais pas quoi dire d'autre, obtiens-tu une erreur ? Ta syntaxe me paraît bonne, mis à part ton ".offset(0,0)" qui ne sert à rien...

    Range1 = Range2 affecte la valeur de Range2 à Range1
    Set Range1 = Range2 affecte l'objet Range2 à l'objet Range1
    Donc après cette dernière ligne, "Range1 Is Range2" te renverra True

    Peux-tu poser une question plus spécifique, car je ne vois a priori rien à redire dans ton code

    Quentin

  3. #3
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Tu affecte bien ta variable objet à la cellule de dessous mais pour en faire quoi après ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set Cel2 = Cel2.Offset(1, 0)
    J'ai l'impression que ton code mouline pour rien :
    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
     
    For n = 0 To 2
     
        If Month_date(n) = 1 And n = 0 Then
     
            Cel2.Offset(0, 0).Value = "August"
            Set Cel2 = Cel2.Offset(1, 0)
     
        ElseIf Month_date(n) = 1 And n = 1 Then
     
            Cel2.Offset(0, 0).Value = "September"
            Set Cel2 = Cel2.Offset(1, 0)
     
        ElseIf Month_date(n) = 1 And n = 2 Then
     
            Cel2.Offset(0, 0).Value = "October"
            Set Cel2 = Cel2.Offset(1, 0)
     
        End If
     
    Next n
    Peut être qu'avec la fonction Choose ça éviterait la boucle si tu défini la position ordinale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Cel2.Value = Choose(Position, "August", "September", "October")
    Ici, tu ne parente pas ton Range :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set Plage = Range("B2:B20")
    sur quelle feuille, Sheet2 ou Sheet3 ?

    Hervé.

  4. #4
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 24
    Par défaut
    J'ai pris en compte ce que tu m'as dit Theze pour ma plage de cellule.
    Sinon je n'ai pas d'autres soucis sur ce code la

    Cependant j'aimerais faire quelque chose de nouveau. J'ai cree un tableau, je voudrais faire une boucle For, des que ma condition est verifie, ma premiere case du tableau augmente de 1 sachant que les cases de mon tableau ont ete initialise a 0. Donc ce que je ne sais pas faire c'est comment augmente de 1 la valeur qui est dans mon tableau des que la condition est verifie.

    En gros dans mon code des que Month(mydate) = 1, je voudrais rajouter +1 a Number_Month_Copper(0).

    Voici la partie de mon code qui pourrait vous interesse

    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
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    Dim Number_Month_Copper(11) As Integer
     
    Number_Month_Copper(0) = 0
    Number_Month_Copper(1) = 0
    Number_Month_Copper(2) = 0
    Number_Month_Copper(3) = 0
    Number_Month_Copper(4) = 0
    Number_Month_Copper(5) = 0
    Number_Month_Copper(6) = 0
    Number_Month_Copper(7) = 0
    Number_Month_Copper(8) = 0
    Number_Month_Copper(9) = 0
    Number_Month_Copper(10) = 0
    Number_Month_Copper(11) = 0
     
    For Each Cel In Plage
     
        If InStr(Cel.Value, "LP_LME") <> 0 Then
     
            mydate = Cel.Offset(0, 4).Value
     
                If Month(mydate) = 1 Then
     
                    Month_Copper(0) = 1
     
                ElseIf Month(mydate) = 2 Then
     
                    Month_Copper(1) = 1
     
                ElseIf Month(mydate) = 3 Then
     
                    Month_Copper(2) = 1
     
                ElseIf Month(mydate) = 4 Then
     
                    Month_Copper(3) = 1
     
                ElseIf Month(mydate) = 5 Then
     
                    Month_Copper(4) = 1
     
                ElseIf Month(mydate) = 6 Then
     
                    Month_Copper(5) = 1
     
                ElseIf Month(mydate) = 7 Then
     
                    Month_Copper(6) = 1
     
                ElseIf Month(mydate) = 8 Then
     
                    Month_Copper(7) = 1
     
                ElseIf Month(mydate) = 9 Then
     
                    Month_Copper(8) = 1
     
                ElseIf Month(mydate) = 10 Then
     
                    Month_Copper(9) = 1
     
                ElseIf Month(mydate) = 11 Then
     
                    Month_Copper(10) = 1
     
                ElseIf Month(mydate) = 12 Then
     
                    Month_Copper(11) = 1
     
                End If
     
        End If
    ...

  5. #5
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    De cette façon :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Month_Copper(0) = Month_Copper(0) + 1
    Hervé.

  6. #6
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2015
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2015
    Messages : 24
    Par défaut
    Merci beaucoup

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

Discussions similaires

  1. [XL-2003] probleme commande vba 2010/2003
    Par majdounette dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/09/2013, 11h53
  2. probleme en VBA office 2003=> 2010 excel => powerpoint
    Par anasscom dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/02/2012, 12h14
  3. [Debutant] VBA EXCEL form comboliste imbriquée
    Par megapacman dans le forum Access
    Réponses: 4
    Dernier message: 10/03/2006, 10h27
  4. [DEBUTANT - VBA] Problèmes de ComboBox
    Par _Maniak dans le forum Général VBA
    Réponses: 13
    Dernier message: 10/03/2006, 10h02
  5. probleme code vba ne s'execute pas apres instruction sql
    Par arnogef dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 29/12/2005, 12h34

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