Macro insertion ligne Excel, macro ne suit pa

Résolu
banbiou Messages postés 70 Statut Membre -  
banbiou Messages postés 70 Statut Membre -
Bonjour,

Meilleurs voeux à tous
*.....

Alors petite question: j'ai realisé un fichier Excel avec Macro. Mais mon problème est qu'il faut que je change les données (cellules) da ma macro à chaque fois que j'insere une ligne dans mon fichier Excel.
Ex.:

Sub macro3()

With bouton3 = Checked
Rows("30:33").EntireRow.Hidden = False
End With
End Sub


si j'insere la ligne 20, ma macro sera décaler d'une ligne.....
Il a t'il une fonction qui permet de synchroniser ma macro en tps réel ??? Permet de suivre mes modifications Excel...

Vous me suivez...lol. Je m'exprime mal peu etre, si vous avez des questions je vous repondrais avec plaisir.

Merci à toi et toi et toi et toi et..................
Configuration: Windows XP
Internet Explorer 6.0

12 réponses

  1. herod1983 Messages postés 200 Statut Membre 5
     
    salut

    Je ne vois pas très bien ce que tu veux faire, en gros tu veux insérer une ligne quand il y a une certaine condition laquelle? mais tu veux pouvoir modifié à chaque fois à quelle endroit tu veux l'insérer c'est sa?

    0
  2. herod1983 Messages postés 200 Statut Membre 5
     
    si c'est bien sa je te propose cela:

    Il te faudra juste double cliquer sur la ligne concernée pour que cela en insère une.

    A mettre dans: Private Sub Worksheet_BeforeDoubleClick

    Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    
    Call Macro1(Target)
    
    End Sub


    A mettre dans une macro:

    Sub Macro1(Target)
    
    Set i = Target
    
    Range("A" & i.Row).Insert
    
    
    End Sub

    0
    1. banbiou Messages postés 70 Statut Membre 32
       
      une idée herod1983...?
      0
  3. banbiou Messages postés 70 Statut Membre 32
     
    En faite, lorsque je modifie mon Excel (ce qui arrive souvent). Lorsque, par exemple, j'ajoute une ligne en Excel. Ma Macro n'est plus à jour.
    0
  4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    le plus simple est de nommer la plage concernée (par exemple plage3) et d'utiliser ce nom dans la macro :
    Range("plage3").EntireRow.Hidden = False

    Le nom d'adaptera tout seul en fonction des ajout/suppression de lignes et tu peux redéfinir la plage en cas d'évolution de ta feuille sans retoucher le code.

    eric
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    le plus simple est de nommer la plage concernée (par exemple plage3) et d'utiliser ce nom dans la macro :
    Range("plage3").EntireRow.Hidden = False

    Le nom d'adaptera tout seul en fonction des ajout/suppression de lignes et tu peux redéfinir la plage en cas d'évolution de ta feuille sans retoucher le code.

    eric
    0
    1. banbiou Messages postés 70 Statut Membre 32
       
      en gros si je te comprend bien eric:

      comme ma macro est associé à un bouton, "bouton3", il me sufirai de dire au début de ma macro:

      Range("bouton3").EntireRow.Hidden = False ??? c'est ca?

      je peux meme je pense nommer tous mes boutons "bouton3" pour que cette ligne d'instruction ce généralise à toutes mes macro de ce type..?

      En tout cas, en attentan des news de ta part, je te remerci et je te dirai si cela marche demain car je vais au dodo...
      0
  7. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    Non, il faut que tu nommes ta plage sur la feuille.
    Sélectionner tes 3 lignes et menu 'insertion / nom / definir...'

    eric
    0
    1. banbiou Messages postés 70 Statut Membre 32
       
      slt,

      alors j'ai bien essayé ta proposition mais cela n'a pas fait l'effet que j'attandais...lol
      pour plus de compréhension, j'envoi un "exemple" de mon .xls

      ajoute une ligne supplémentaire au début de ma page, joue avec les macros et tu comprendras tout vite ce que j'ai voulu dire lol.

      voila:
      http://www.cijoint.fr/cjlink.php?file=cj200901/cijLIu5ISQ.xls

      merci d'avance.
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281 > banbiou Messages postés 70 Statut Membre
       
      Bonsoir,

      ben j'ai modifié et 'joué' comme tu dis et je ne vois pas bien où ça cloche par rapport à ce que tu demandais (?)
      Soit tu as mal expliqué, soit je n'ai rien compris, soit tu n'as pas compris mon explication (sommaire...)
      Je n'ai modifié que pour les boutons en lignes 29 et 33 :
      classeur1.xls
      Et si la ligne insérée est entre 30:33 la plage s'aggrandi en 30:34

      Mais pour faire plus joli et plus ergonomique utilise le même bouton pour déplier et replier (là celui en 33 ne sert plus à rien)
      eric
      0
    3. banbiou Messages postés 70 Statut Membre 32 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
       
      bah voila, j'avais ma utilisé ton explication avec la "plage3"...
      j'avais juste mis mes macro dans cette plage.
      Et effectivement, ca fait 1 mois que je "joue" avec les macro Excel...

      Et un gros merci pour ta trouvail, ton aide et aussi l'ergonomie de mon bouton "2 en 1", j'avais essayé de trouver qque chose mais j'avais pas trouvé...^^

      En tout cas un GRAND MERCI.

      PS: et si tu es fort en dyndns avec pi3web... je veux bien un coup de main pr configurer mon log. pi3web... lol
      0
    4. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281 > banbiou Messages postés 70 Statut Membre
       
      Je ne connais pas pi3web mais si c'est pour te faire un serveur FTP avec dyndns tu peux t'inspirer de ça :
      FTP sur micro.pdf
      Tout est bien expliqué point par point
      eric
      0
    5. banbiou Messages postés 70 Statut Membre 32 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
       
      merci eric,
      0
  8. herod1983 Messages postés 200 Statut Membre 5
     
    Salut

    Désolé pour hier j'ai pas le net a mon boulot, j'ai vue ton .xls effectivement, pour que chaque ligne cachée garde leur numéro de ligne quand tu en ajoute une, il faudrait faire une macro qui déplace tous de +1, mais vu le nombre de ligne cachée que tu as, c'est plutôt ardue.
    Alors peut-être si tu prenais le problème d'une autre manière, à ton stade est-il encore possible qu'au lieu d'insérer des lignes, que tu ajoutes tous simplement tes donnés au fur et à mesure.
    0
  9. banbiou Messages postés 70 Statut Membre 32
     
    en faite, j'ai ma liste principale d'opérations et lorsque je clic sur le "+" c'est pour avoir le détail (les sous opérations).
    ces opérations sont dans un ordre précis. Mais il se peut que j''en ai oubliées une ou deux par ci par là donc rajouter des lignes supplémentaires... tu vois ce que je veux dire ?
    merci
    0
  10. herod1983 Messages postés 200 Statut Membre 5
     
    Ok je vais me pencher sur le problème je te tiens au courant
    0
    1. banbiou Messages postés 70 Statut Membre 32
       
      merci herod
      0
  11. herod1983 Messages postés 200 Statut Membre 5
     
    Voila c'est fait

    voici le lien http://herod1983.hbg.fr/cijLIu5ISQ.xls

    Donc pour garder les mêmes lignes qui se masque et se dévoile quand tu en insère une j'ai procédé de la façon suivante:

    - En premier j'ai déjà effacé tes boutons car ce n'était pas des CommandButton et pour effectuer l'évènement Click
    c'était plus problématique (tu les trouves dans affichage=>barre d'outil=>boite a outil de contrôle)

    - Ensuite j'ai pris les coordonnées ligne du bouton "+", vu qu'ils étaient à chaque fois au-dessus des lignes à démasquer.
    En gros j'ai dis si le bouton est sur cette ligne alors les lignes en dessous (en fonction du nombre de ligne que tu veux masquer) se démasque, pareil pour le masquage

    il y a une macro pour chaque nombre de ligne à masquer (en l'occurrence pour toi 2,3,5,8,9), si tu veux créer d'autre boutons qui masque un autre nombre de ligne, tu n'aura qu'à copier une macro déjà faite et changer à
    +2 +3 ou +4 et mettre +6 pour 6ligne +7 etc.

    Je t'ai encore expliquer dans les macro la marche à suivre

    Voila j'espère que je bien été explicatif, de toute façon si il y a quelque chose qui cloche tu peux toujours m'en faire part.

    0
    1. banbiou Messages postés 70 Statut Membre 32
       
      merci herod, tu as aussi réussi comme eric.
      il y a plus de programmation dans ta méthode par rapport a eric.
      j'aime bien les deux... ^^
      en tout cas j'ai encore bcp de progres a faire...
      tu sais pas où je peux apprendre des "formules types" : celle a savoir obligatoirement...lol
      merci en tout cas.
      c'est bien gentil de ta part.
      0
  12. herod1983 Messages postés 200 Statut Membre 5
     
    Il y a plus de code tous simplement au cas ou si il y a un problème le code est plus robuste.

    Sinon pour des formules type il y a le tuto:
    de développez.com
    de info3000.com
    de vbfrance.com
    et de cathyastuce.com

    Tous mon pas mal aidé à mes débuts j'ai aussi acheter le livre ExcelVBA pour les nuls qui est vraiment très bien pour les débutants.

    Ca fait 1 an que je m'y suis mis et je commence juste à effleurer la partie émergé de l'iceberg lol
    En tous cas le tous pour apprendre vite c'est de créer programme sur programme, pour acquérir la syntaxe du code, d'être patient c'est le moins qu'on puisse dire et surtout vive le net et les forums sans cela sa prendrait deux fois plus de temps.

    malgré tous quand tu commence à connaître tu t'aperçois de la montagne de chose que tu peux faire et la tu kiffe.

    Voila Bonne Continuation
    a+
    0
    1. banbiou Messages postés 70 Statut Membre 32
       
      merci mec, tu as bien raison...
      a+ pour un prochain cour de VBA...
      0
  13. banbiou Messages postés 70 Statut Membre 32
     
    alors encore plus d'explications...lol

    à la ligne 30 j'ai un bouton "3". A ce bouton j'ai accroché une macro pour que celle ci démasque trois lignes :

    Sub macro3()

    With bouton3 = Checked
    Rows("30:33").EntireRow.Hidden = False
    End With
    End Sub


    mais maintenant je veux ajouter une ligne supplémentaire au debut de ma page une ligne 0.
    Hors, si j'ajoute une ligne, ma macro va etre décalé elle aussi d'une ligne et ne va pas demasquer la ligne 30, 31, 32, 33 mais les lignes 30+1, 31+1, 32+1, 33+1.... (décalage d'une ligne !!! )

    je rajoute souvent des ligne supplementaire, cellule ou colonne... et je ne veux pas changer ma macro a chaque fois, surtout qu'actuellement à la moitier de mon Excel, je suis à une 20aine de macro de ce type....

    Voila mon gros souci, y a t'il une fonction qui permettre de suivre mes macro par rapport aux ligne colonne ou cellule que je rajoute..?

    Merci
    -1