Macro excel pour saisie de lignes dans un onglet et copie colle dans un autre

Fermé
Ripoulinaxou Messages postés 1 Date d'inscription jeudi 13 février 2020 Statut Membre Dernière intervention 13 février 2020 - 13 févr. 2020 à 19:12
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 17 févr. 2020 à 16:25
Bonjour à tous,

J'essaie de créer une macro avec VBA afin d'enregistrer des bons de commandes :
On saisi les données dans le premier onglet, on clique sur le bouton et ça se colle dans l'onglet suivant, à la suite de la première ligne disponible (sans effacer le contenu de l'onglet catalogue) tout en supprimant le contenu dans le premier onglet (onglet copy+paste PO) pour que ce dernier soit toujours vierge et disponible.

J'ai commencé ma macro et j'en suis ici : https://mon-partage.fr/f/smAvnz6y/

Malheureusement elle ne fonctionne pas correctement :
- Toutes les lignes du bon de commande ne se collent pas les unes à la suite des autres mais seulement quelques unes
- une fois le bon de commande copié dans le deuxième onglet, il m'est impossible de rajouter des lignes une seconde fois, comme saisir un deuxième bon de commande

Je débute en VBA, et là j'ai vraiment l'impression d'être coincée! Petite précision : J'utilise excel en anglais

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

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 728
17 févr. 2020 à 16:25
Bonjour,

se mettre sur l'onglet: onglet copy+paste PO, supprimer colonne A vide et 1ère ligne vide

faire Alt F11 pour accèder à l'éditeur.


coller se code qui se déclenchera au clic sur la ligne à copier:

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Derligne As Long
 Derligne = Worksheets("Catalogue").Range("A" & Rows.Count).End(xlUp).Row + 1 '1ère ligne vide feuille Catalogue
If Not Application.Intersect(Target, Range("A:O")) Is Nothing Then 'colonne a adapter
 If Target.Value = "" Then Exit Sub
 Range("A" & Target.Row & ":O" & Target.Row).Copy Worksheets("Catalogue").Range("A" & Derligne) 'copier dans feuille Catalogue
 ' Worksheets("copy+paste PO").Rows(Target.Row & ":" & Target.Row).Delete Shift:=xlUp 'supprimer ligne dans feuille  copy+paste PO si besoin activer
 End If
End Sub


0