VBA: figer des données
Bonjour,
j'ai un document composé de 3 feuilles.
Les données de la feuille "zone" changent selon les besoins.
j'aimerais que certaines de ces données se figent dans ma feuille "Base de données":
* colonne "Date" reprend la date de la cellule G28 de la feuille "zone"
* colonne Code Colis reprend le code de la cellule C5 de la feuille "zone"
* colonne Réf Produit reprend les références des cellules de C33 à C38 de la feuille "zone"
* colonne Qté reprend les quantité des cellules de D33 à D38 de la feuille "zone"
Pour cela j'ai réalisé une macro. La voilà:
Sub Figer_les_données()
'------------------------------------------------
Dim QtéR As Integer, QtéRupt As Integer, nblignes1 As Integer
QtéR = 33
QtéRupt = 2
nblignes1 = WorksheetFunction.CountA(Range("D33:D38"))
'
Dim RéfR As Long, RéfRupt As Long, nblignes2 As Integer
RéfR = 33
RéfRupt = 2
nblignes2 = WorksheetFunction.CountA(Range("C33:C38"))
'
Dim ColisRupt As Long
ColisRupt = 2
'
Dim DateRupt As Date
DateRupt = 2
'-----------------------------------------------
'
For i = QtéR To QtéR + nblignes1
Sheets("zone").Cells(i, 4).Copy
Sheets("Base de données").Cells(QtéRupt, 4).Insert
Next i
For i = RéfR To RéfR + nblignes2
Sheets("zone").Cells(i, 3).Copy
Sheets("Base de données").Cells(RéfRupt, 3).Insert
Next i
Sheets("zone").Cells(5, 3).Copy
Sheets("Base de données").Cells(RéfRupt, 2).Insert
Sheets("zone").Cells(28, 7).Copy
Sheets("Base de données").Cells(DateRupt, 1).Insert
Range("plage1").Font.Size = 14
Range("plage1").Font.Bold = False
End SubPROBLÈMES:
--> j'aimerais juste avoir la valeur dans la colonne quantité, et non la formule
--> j'aimerais enlever les lignes vides entre les données copiées
--> j'aimerais que les données ne soient pas éparpillées dans mon tableau, qu'une date correspondent à un code colis, qui correspond à une réf produit, qui correspond à une quantité.
Pouvez-vous m'aider à revoir ma macro svp
Merci Banzai64,
je viens de tester ton document, mais ça ne me va pas: ça me met bien les données que je veux dans la feuille 2, et correctement, mais si je change une donnée dans la feuille "zone" et que je clique sur le bouton, ça change les données sur la feuille "Base de données", alors que j'aimerais que ça s'ajoute.
je ne sais pas si tu comprend ce que j'aimerais faire...^^
Et aussi, quand je change le code colis, l'ordi me met un mot en me disant que l'indice n'appartient pas à la sélection.
Cdt
c'est bon pour figer les données!!^^
En cherchant j'ai réussis à figer les données!!!
voilà ce que j'ai fais:
Option Explicit
Sub Figer_les_données()
'Déclaration des variables
Dim NbLignes1 As Long, NbLignes2 As Long
'Intégrer une valeur aux variables
NbLignes1 = WorksheetFunction.CountA(Range("C33:C38"))
NbLignes2 = WorksheetFunction.CountA(Sheets("Base de données").Range("C:C"))
Application.ScreenUpdating = False
'Copier et coller les cellules
Range("C33:D" & 32 + NbLignes1).Copy
With Sheets("Base de données")
.Cells(NbLignes2 + 1, 3).PasteSpecial Paste:=xlPasteValues
.Cells(NbLignes2 + 1, 2).Resize(NbLignes1) = Range("C5")
.Cells(NbLignes2 + 1, 1).Resize(NbLignes1) = Range("G28")
End With
'Arrêter les copier/coller
Application.CutCopyMode = False
End SubPar contre je ne comprend pas pourquoi quand je change de code colis (cellule C5 de la feuille zone), j'ai un message d'erreur "l'indice n'appartient pas à la sélection".
En tout cas merci beaucoup Banzai64 pour ta macro!!!!! ça fait des semaines que je suis dessus!!!^^
Cdt
Bonjour
cindy32 a écrit :pourquoi quand je change de code colis (cellule C5 de la feuille zone), j'ai un message d'erreur "l'indice n'appartient pas à la sélection".
Ce message vient de la procédure Worksheet_Change dans le module de la feuille "Zone"
Enlèves cette procédure
merci beaucoup!!!!!!!!