Code VBA copie de lignes dans un autre onglet en fin de tableau

Résolu
Ambrita83 Messages postés 6 Statut Membre -  
Ambrita83 Messages postés 6 Statut Membre -
Bonjour à tous,

Malgré mes différentes tentatives je ne parviens pas à ajouter automatiquement en sortie de stock les articles contenus dans un BL après validation de ce dernier.

J'ai deux onglets: "BL" et "Entrées et Sorties".

Les cellules A18 à A38 de l'onglet "BL" doivent apparaître à partir de la première cellule vide de la colonne C de l'onglet "Entrées et Sorties" -> nom des articles.

Les cellules E18 à E38 du "BL" doivent alors être copiées en conséquence dans la colonne F de l'onglet "Entrées et Sorties" -> quantité.

Voici ma dernière tentative:

Sheets("Entrées et Sorties").Select

Range("C" & Rows.Count).End(xlUp).Offset(1, 0).Select
ActiveCell.FormulaR1C1 = "=IF(BL!R[11]C[-2]="""","""",BL!R[11]C[-2])"
ActiveCell.Select
Selection.Copy

ActiveCell.Offset(0, 2).Select
ActiveCell.FormulaR1C1 = "=IF(RC[-3]="""","""",BL!R[11]C[-1])"
ActiveCell.Application.CutCopyMode = False

Selection.EntireRow.Select
Selection.Copy
Range(ActiveRow, ActiveRow.End(xlUp)).Select
Selection.PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Columns("C:F").Select
Selection.Copy
Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Merci par avance pour votre aide!
A voir également:

1 réponse

via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750
 
Bonjour Ambrita,

Essaie plutôt quelquechose ceomme ceci :
Dim Ligne As Long 
Ligne = Range("C" & Rows.Count).End(xlUp).Row 
For x=18 to 38
IF Sheets("Entrées et Sorties").Range("A" & x)<>"" then
Ligne=Ligne+1
Sheets("BL").range("C" & Ligne)=Sheets("Entrées et Sorties").Range("A" & x)
Sheets("BL").range("F" & Ligne)=Sheets("Entrées et Sorties").Range("E" & x)
End if
Next x


Cdlmnt
Via
0
Ambrita83 Messages postés 6 Statut Membre
 
Bonjour Via,

Merci pour ce retour.

J'ai créé une macro Stocks_V3 avec ta version mais sans résultat.
J'ai tenté en inversant les colonnes dans le code (Stocks_V4) mais ça ne fonctionne pas non plus.

Je ne maîtrise pas encore bien le VBA. Je te joins le fichier, en espérant que tu pourras trouver une solution à mon pb.

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

Pour info, le code sur lequel je travaille est destiné à être intégré à la macro valiation_BL.

Merci encore,

Cdlt,
Ambrita
0
via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention   2 750 > Ambrita83 Messages postés 6 Statut Membre
 
Bonsoir Ambrita

Désolé j'ai inversé les feuilles BL et Entrées Sorties dans la macro !!

La bonne macro est :
Sub Stocks_v3()

Dim Ligne As Long
Ligne = Sheets("Entrées et Sorties").Range("C" & Rows.Count).End(xlUp).Row
MsgBox Ligne
For x = 18 To 38
If Sheets("BL").Range("A" & x) <> "" Then
Ligne = Ligne + 1
Sheets("Entrées et Sorties").Range("C" & Ligne) = Sheets("BL").Range("A" & x)
Sheets("Entrées et Sorties").Range("F" & Ligne) = Sheets("BL").Range("E" & x)
End If
Next x

End Sub


Cdlmnt
Via
0
Ambrita83 Messages postés 6 Statut Membre > via55 Messages postés 14730 Date d'inscription   Statut Membre Dernière intervention  
 
C'est super, ça marche!
Il ne me reste plus qu'à comprendre comment fonctionne le code dans le détail pour la prochaine fois ;)

Merci encore Via!!!
0