Enregistrer une plage de donnée d'une feuille excel à une autre
Fermé
josh
-
29 janv. 2016 à 19:46
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 30 janv. 2016 à 07:00
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 30 janv. 2016 à 07:00
A voir également:
- Enregistrer une plage de donnée d'une feuille excel à une autre
- Comment enregistrer une video youtube - Guide
- Créer une liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Calculer une moyenne sur excel - Guide
- Aller à la ligne dans une cellule excel - Guide
1 réponse
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
338
30 janv. 2016 à 07:00
30 janv. 2016 à 07:00
Bonjour
Pour que votre code soit plus rapide, ajoutez en première ligne
La boucle"
Vous pouvez écrire le code sous cette forme. A coller dans un module classique pas celui de la feuille (dans la fenêtre VBA, faire insertion- module)
remplacez "Feuil1" par le nom de votre feuille contenant les données à récupérer.
Dans le module de la feuille, remplacez votre code par
Cdlt
Pour que votre code soit plus rapide, ajoutez en première ligne
Application.ScreenUpdating = False
La boucle"
For i = dl To dl + 10" hormis les 3 premières colonnes, recopie 10 fois les valeurs des colonnes I G et H au même endroit (donc inutile).
Next idevrait se trouver après la 3ème ligne
For i = dl To dl + 10 Sheets("mouvements").Cells(i, 1) = Range("k6").Value Sheets("mouvements").Cells(i, 3) = Range("h7").Value Sheets("mouvements").Cells(i, 4) = Range("h6").Value Next i
Vous pouvez écrire le code sous cette forme. A coller dans un module classique pas celui de la feuille (dans la fenêtre VBA, faire insertion- module)
Sub Recopie() Dim dl As Long, i As Long Application.ScreenUpdating = False Set f1 = Sheets("Feuil1") Set f2 = Sheets("mouvements") If MsgBox("Voulez-vous Sauvegarder la facture?", vbYesNo, "confirmation") = vbYes Then f2.Select dl = [E456541].End(xlUp).Row + 1 Range(Cells(dl, 1), Cells(dl + 10, 1)) = f1.[k6] Range(Cells(dl, 3), Cells(dl + 10, 3)) = f1.[H7] Range(Cells(dl, 4), Cells(dl + 10, 4)) = f1.[H6] Range(Cells(dl, 5), Cells(dl + 10, 5)) = f1.[h13:h23].Value Range(Cells(dl, 7), Cells(dl + 10, 7)) = f1.[g13:g23].Value Range(Cells(dl, 8), Cells(dl + 10, 8)) = f1.[j13:j23].Value MsgBox "sauvegarde Réussie", vbInformation, "Confirmation Sauvegarde" End If f1.Select End Sub
remplacez "Feuil1" par le nom de votre feuille contenant les données à récupérer.
Dans le module de la feuille, remplacez votre code par
Private Sub CommandButton1_Click() Recopie End Sub
Cdlt