Vba: ajouter des lignes à une feuille existante

Fermé
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - Modifié le 15 mars 2018 à 13:49
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 - 15 mars 2018 à 13:47
Bonjour à tous
Encore une fois, merci beaucoup de me lire . Je sais que c'est très simple mais j'ai passé la journée là-dessus et ça ne fonctionne pas. les lignes se copies comme voulu, sauf que la fois d'après, elles écrasent les lignes dans la feuille BDC au lieu d'aller à la suite, j'ai tout essayer sans succès.. Je me doute que ça a rapport avec la ligne
For lig = 2 to range ("a" & Rows.Count).End(xlUp).Row + 1
mais j'y arrive pas quand même
Sub enregistrer_données()
Dim cel As Range, c As Range
Dim Lig As Long
Dim ShtD As Worksheet, ShtF As Worksheet

Set ShtD = ActiveSheet
Set ShtF = Sheets("BDC")
For Lig = 2 To Range("a" & Rows.Count).End(xlUp).Row + 1

Set cel = ShtD.Range("C13:C23")
For Each c In cel
If c > "" Or c.Offset(0, 1).Value > "" Then
        ShtF.Range("A" & Lig) = ShtD.Range("B1")
        ShtF.Range("B" & Lig) = ShtD.Range("I11")
        ShtF.Range("C" & Lig) = ShtD.Range("A" & Lig + 11)
        ShtF.Range("D" & Lig) = ShtD.Range("B" & Lig + 11)
        ShtF.Range("e" & Lig) = ShtD.Range("C" & Lig + 11)
        ShtF.Range("f" & Lig) = ShtD.Range("D" & Lig + 11)
        ShtF.Range("g" & Lig) = ShtD.Range("E" & Lig + 11)
        ShtF.Range("h" & Lig) = ShtD.Range("F" & Lig + 11)
        ShtF.Range("i" & Lig) = ShtD.Range("G" & Lig + 11)
        ShtF.Range("j" & Lig) = ShtD.Range("i" & Lig + 11)
       Lig = Lig + 1     
        End If
        Next
        Exit For
Next

End Sub



merci à l'avance de prendre le temps de me lire

2 réponses

f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
7 mars 2018 à 08:16
Bonjour,

Certes, certes en dehors du fait que ca marche pas, vous copier la meme plage de ligne C13:C23
Vous voulez quoi en fin de compte?????
1
f894009 Messages postés 17185 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 15 avril 2024 1 701
7 mars 2018 à 09:37
Bonjour a tous,
Salut michel_m


lanetmel:
ce code copie les lignes de 13 a 23 si tests >"" vrai en ajout
mais pige pas le lig pour Shtd
Sub enregistrer_données()
    Dim cel As Range, c As Range
    Dim Lig As Long
    Dim ShtD As Worksheet, ShtF As Worksheet

    Set ShtD = ActiveSheet
    Set ShtF = Sheets("BDC")
    
    Set cel = ShtD.Range("C13:C23")
    With ShtF
        Lig = .Range("A" & Rows.Count).End(xlUp).Row + 1
        For Each c In cel
            If c > "" Or c.Offset(0, 1).Value > "" Then
                .Range("A" & Lig) = ShtD.Range("B1")
                .Range("B" & Lig) = ShtD.Range("I11")
                .Range("C" & Lig) = ShtD.Range("A" & Lig + 11)
                .Range("D" & Lig) = ShtD.Range("B" & Lig + 11)
                .Range("e" & Lig) = ShtD.Range("C" & Lig + 11)
                .Range("f" & Lig) = ShtD.Range("D" & Lig + 11)
                .Range("g" & Lig) = ShtD.Range("E" & Lig + 11)
                .Range("h" & Lig) = ShtD.Range("F" & Lig + 11)
                .Range("i" & Lig) = ShtD.Range("G" & Lig + 11)
                .Range("j" & Lig) = ShtD.Range("I" & Lig + 11)
                Lig = Lig + 1
            End If
        Next
    End With
End Sub
0
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 4
7 mars 2018 à 13:52
C'est exactement ce dont j'avais besoin , merci beaucoup :)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 mars 2018 à 08:09
Bonjour

dans quelle feuille est située ta boucle ?
Set ShtD = ActiveSheet 
Set ShtF = Sheets("BDC")
For Lig = 2 To Range("a" & Rows.Count).End(xlUp).Row + 1

0
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 4
7 mars 2018 à 13:54
Bonjour Michel_m
merci d'avoir pris le temps de vouloir m'aider, très apprécié.
0
lanetmel Messages postés 200 Date d'inscription mercredi 24 août 2011 Statut Membre Dernière intervention 15 mars 2018 4
15 mars 2018 à 13:47
Bonjour à tous,
J'ai fermé mon post trop vite :( . Ce que je souhaite :
1) je veux que les données de ma feuille active : Si les colonnes C ou D (à partir de la ligne 13 jusqu'à 23), si Cou D > "" ou 0
2) je veux que dans ma feuilles BDC, les données de la cellule B1 (feuille active) aillent dans la colonne A - que les donnée de la cellule i11(feuille active) aillent dans la colonne B, et ensuite que les lignes complètes de ma feuille active (a partir de la ligne 13 jusqu'à 23) se copie dans la feuille BDC dans les colonne C à J,
3) je veux que chaque ligne de 13 à 23 de ma feuille active me donne une ligne dans ma feuille BDC
ça ça fonctionne. Seulement il faudrait que d'une fois à l'autre je n'écrive pas par dessus la feuille BDC
et présentement, si je refais la manœuvre plusieurs fois, ça se décale et ne me donne pas la bonne chose..
Je ne suis pas certaine d'être clair.. je joint mon fichier
https://www.cjoint.com/c/HCpmT5664g0

il suffit d'aller sur la feuille bâton rouge et d'appuyer sur le bouton bleu

merci encore beaucoup à vous :)
0