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 :

boucle changement valeur cellule


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut boucle changement valeur cellule
    Bonjour,

    debutant en vba, je cherche a effectuer une boucle qui permetterait d'inserer une ligne à chaque changement de valeur d'une cellule , j'ai commencé un code mais je me retrouve avec une erreur d'execution 438 " propriete ou méthode non geree par cet objet".
    j'ai mis le code dans un module, merci d'avance pour votre aide.
    car là je suis perdu
    voici le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub insert()
    Dim cellule As Range
     
    For Each cellule In Range("d8:d" & Range("d5536").End(xlUp).Row)
    If Sheets("Rapport1").celluleChange.value Then cellule.Entirerows.insert Shift:=xlDown
    Next cellule
    End Sub

  2. #2
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonsoir
    Qu'est ce que c'est celluleChange?

    @+

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 130
    Points : 2 443
    Points
    2 443
    Par défaut
    Salut les4c77 et le forum

    Citation Envoyé par les4c77
    debutant en vba, je cherche a effectuer une boucle qui permetterait d'inserer une ligne à chaque changement de valeur d'une cellule
    Si une cellule change (par saisie) de valeur, seules les Macros automatiques (si elles existent)
    - WorkSheet_Change du module lié à la feuille et
    - Workbook_SheetChange du module ThisWorkBook
    sont lancées.

    If Sheets("Rapport1").celluleChange.value Then : Si la Valeur de la propriété celluleChange (?) de la feuille Rapport1 est égale à Vrai (True), alors

    On va supposer qu'il existe une cellule nommée : celluleChange
    Souris sur le nom de l'onglet Rapport1 :
    Clic-droit>>Menu contextuel>>Visualiser le code
    tu colles la macro suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim X As Long
    If Range("celluleChange") Then
        Range("celluleChange").ClearContents
        For X = Range("D5536").End(xlUp).Row To 8 Step -1
            Rows(X).Insert
        Next X
    End If
    End Sub
    - Si tu entres un nombre <>0 dans la cellule "celluleChange", une ligne sera inserée pour chaque ligne de la plage (8 à dernière non-vide enD), juste au-dessus de celle-ci. avec effacement de la cellule "celluleChange"
    - Si cellule "celluleChange" = 0 => rien
    - Si cellule "celluleChange" = texte => erreur

    Target : contient la plage des cellules modifiées et est mise à jour, par Excel, à chanque lancement de la macro

    A+

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Salut Gorfael,

    Tout d'abord merci pour votre réponse, mais je crois que je me suis mal explique en fait j'ai un tableau dans leque les cellules de la colonne D comportent des valeurs dans mon cas exemple : cellule D8 à D12 n° EAB00001,puis D13 EAB00012 ETC.. et je voudrais que lorsqu'il il y a un chgt de n° insere une ligne par exemple entre D12 et D13 car chgt de n° et que la boucle s'effectue sur tous le fichier.
    jai trouVe un a Autre code (voir ci-dessous maisc ela ne fonctionne pas car une fois la première insertion la boucle ne reprends pas a la cellule suivant et insere donc des lignes sans arret "boucle infini";

    si vous pouviez m'aider ce serait sympa.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub insert()
    Dim cellule As Variant
     
    For Each cellule In Range("d9:d" & Range("d65536").End(xlUp).Row)
    If cellule <> cellule.Offset(-1, 0) Then cellule.EntireRow.insert Shift:=xlDown
    Next cellule
    End Sub

  5. #5
    Membre éprouvé
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Points : 1 207
    Points
    1 207
    Par défaut
    bonsoir
    Je crois qu'il faut partir du bas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Sub insert()
    Dim cellule As Variant
     
    For i = Range("d65536").End(xlUp).Row To 9 Step -1 'For Each cellule In Range("d9:d" & Range("d65536").End(xlUp).Row)
    If Cells(i, 4).Value <> Cells(i + 1, 4).Value Then Rows(i + 1).EntireRow.insert Shift:=xlDown
    Next
    End Sub
    ça marche chez moi

    Salutations

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 22
    Points : 18
    Points
    18
    Par défaut test
    salut,

    je te conseil VBA pour les nuls ca m'a aidé^^

    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
    Range("A1").Activate
    Vall = ActiveCell.Value
    Do Until Vall = ""
    
    If Vall = ActiveCell.Offset(1, 0).Value Then
      ActiveCell.Offset(1, 0).Activate
    Else
        
        ActiveCell.Offset(1, 0).Activate
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
        ActiveCell.Offset(1, 0).Activate
    
    
    Vall = ActiveCell.Value
    End If
    Loop
    
    End Sub
    La ligne en rouge est extraite de l'enregistreur windows excel elle peut etre ameliorer. d'ailleur si quelqu'un peu me donner une ligne qui leanerai la routine je dis pas non...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Bonjour fred65200,

    j'ai essayé avvec ton code cela fonctionne merci beaucoup.

    à SCHOLLERF et à Gorfael pour votre interet et conseils.

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

Discussions similaires

  1. [XL-2010] Action suite changement valeur cellule
    Par FredExc dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 19/12/2011, 18h43
  2. Changement valeur cellule non encore validée
    Par cazadeis dans le forum VB.NET
    Réponses: 2
    Dernier message: 21/10/2010, 10h19
  3. Macro sur changement valeur cellule?
    Par jojo86 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/02/2010, 07h00
  4. lancer macro si changement valeur cellule + condition
    Par tikam75007 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 07/11/2009, 12h25
  5. exécution macro sur changement valeur cellule, juste un truc qui cloche.
    Par laatysha dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/05/2008, 09h00

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