Améliorer une macro facile

Résolu/Fermé
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020 - 11 avril 2016 à 10:30
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 12 avril 2016 à 18:36
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


A voir également:

3 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 avril 2016 à 09:17
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
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020
12 avril 2016 à 10:35
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
12 avril 2016 à 18:36
Non, il te suffit de changer de ligne :
        Cells(lig , 6).Insert xlToRight
au lieu de
       Cells(lig + 1, 6).Insert xlToRight
0
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020
11 avril 2016 à 15:28
Mes amis??
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
11 avril 2016 à 16:37
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
nonossov Messages postés 611 Date d'inscription lundi 29 décembre 2014 Statut Membre Dernière intervention 17 janvier 2020
Modifié par jordane45 le 11/04/2016 à 18:03
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