Améliorer une macro facile

Résolu
nonossov Messages postés 638 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
vous trouvez ci joint un fichier contient une macro qui ajoute un ligne avec certain changement, j'aimerai ajouter une seule modification :
déplacer le F2 vers G2 et F4 vers G4 ainsi de suite...

https://www.cjoint.com/c/FDliDShnrSL

Merci infiniment

3 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Il me semble que tu avais la réponse dans le précédent sujet :
    https://forums.commentcamarche.net/forum/affich-33336372-ameliorer-une-macro#3

    Je t'avais corrigé ta ligne incorrecte
        lstcol = Cells(DerLig, Columns.Count).End(xlToRight).Column
    par
        lstcol = Cells(1, 1).End(xlToRight).Column + 1

    et je vois que tu as repris l'ancienne.

    Voici ta macro corrigée :
    Public Sub ajout_ligne()
    Dim lstcol As Long
    Dim lig As Long, DerLig As Long
        DerLig = Cells(Rows.Count, 1).End(xlUp).Row
        lstcol = Cells(1, 1).End(xlToRight).Column
        MsgBox (lstcol)
        For lig = DerLig To 1 Step -1
            Rows(lig + 1).Insert
            Cells(lig + 1, 1).Resize(, lstcol).Value = Cells(lig, 1).Resize(, lstcol).Value
            Cells(lig + 1, 6).Insert xlToRight
            Cells(lig + 1, 3) = "516100"
        Next lig
    End Sub
    
    1
    1. nonossov Messages postés 638 Statut Membre
       
      Si je veux mettre F1 vers G1 et garder F2, c-a-d je fais l'inverse pour l'ordre des ecritures?!
      Merci infiniment
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Non, il te suffit de changer de ligne :
              Cells(lig , 6).Insert xlToRight
      au lieu de
             Cells(lig + 1, 6).Insert xlToRight
      
      0
  2. nonossov Messages postés 638 Statut Membre
     
    Mes amis??
    0
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Bonjour,
      Le mieux serait que tu postes directement le code de ta macro sur le forum plutôt que de mettre une fichier en pj
      NB : **** Attention ****
      Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
      Explications disponibles ici :
      https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

      .
      0
  3. nonossov Messages postés 638 Statut Membre
     
    COMME ça ?
    Public Sub ajout_ligne()
    Dim lstcol As Long
    Dim lig As Long, DerLig As Long
        DerLig = Cells(Rows.Count, 1).End(xlUp).Row
        lstcol = Cells(DerLig, Columns.Count).End(xlToRight).Column
        MsgBox (lstcol)
        For lig = DerLig To 1 Step -1
            Rows(lig + 1).Insert
            Cells(lig + 1, 1).Resize(, lstcol).Value = Cells(lig, 1).Resize(, lstcol).Value
    '        For Each cll In Cells(lig, 1).Resize(, lstcol)
    '        If cll.Value = "516100" Or cll.Value = "610000" Or cll.Value = "620000" Then
    '        cll.Offset(1, 0).Value = "516100"
    '        Exit For
    '        End If
    '        Next
        Cells(lig + 1, 3) = "516100"
        Next lig
    End Sub
    


    EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
    Explications disponibles ici : ICI

    Merci d'y penser dans tes prochains messages.
    0