Bonjour à tous,
J'ai un soucis que les codes glanés sur les différents forums Excel ne parviennent pas à resoudre..
Je cherche un copier-coller une plage de cellule fixe d'une feuille, sur une autre feuille.
Le hic c'est que l'autre feuille sert de base de données qui s'incrémente, donc l'endroit où se collent les données copiées change à chaque lancement de l'application par exemple.
Je bloque sur l'avant dernière ligne du code, c'est-à-dire le moment où il faut juste copier-coller quoi.. J'ai essayé pas mal de solution mais soit ça ne fonctionne pas, soit je n'arrivais pas à paramétrer.
Merci d'avance à ceux qui se pencheront sur la question !
-----------------------------------------------------------
Ci-joint le code, et le fichier pour ceux qui le souhaitent.
et le code d'une des macros appelés, ils sont quasiment identiques entres eux.
J'ai un soucis que les codes glanés sur les différents forums Excel ne parviennent pas à resoudre..
Je cherche un copier-coller une plage de cellule fixe d'une feuille, sur une autre feuille.
Le hic c'est que l'autre feuille sert de base de données qui s'incrémente, donc l'endroit où se collent les données copiées change à chaque lancement de l'application par exemple.
Je bloque sur l'avant dernière ligne du code, c'est-à-dire le moment où il faut juste copier-coller quoi.. J'ai essayé pas mal de solution mais soit ça ne fonctionne pas, soit je n'arrivais pas à paramétrer.
Merci d'avance à ceux qui se pencheront sur la question !
-----------------------------------------------------------
Ci-joint le code, et le fichier pour ceux qui le souhaitent.
VB:
Sub collecte_donnees()
Dim nbligne As Long
Dim i As Integer
Dim der_ligne As Long
Dim NbCol As Integer
Dim NbRow As Integer
Dim CopyRange As Range
Dim PasteRange As Range
der_ligne = Sheets("MAGASIN 6").Range("A1").CurrentRegion.End(xlDown).Row
nbligne = Application.WorksheetFunction.CountA(Feuil2.Range("A21:A40"))
For i = 0 To nbligne - 1
' n° anomalie
Sheets("MAGASIN 6").Range("A" & der_ligne).Offset(rowoffset:=i, columnoffset:=0).Value = Sheets("feuil2").Range("E13").Value
'n° OF
Sheets("MAGASIN 6").Range("B" & der_ligne).Offset(rowoffset:=i, columnoffset:=0).Value = Sheets("feuil2").Range("E11:H12").Value
'chantier
Sheets("MAGASIN 6").Range("C" & der_ligne).Offset(rowoffset:=i, columnoffset:=0).Value = Sheets("feuil2").Range("E15:H16").Value
'chalet
Sheets("MAGASIN 6").Range("D" & der_ligne).Offset(rowoffset:=i, columnoffset:=0).Value = Sheets("feuil2").Range("E17:H18").Value
'date constat
Sheets("MAGASIN 6").Range("E" & der_ligne).Offset(rowoffset:=i, columnoffset:=0).Value = Sheets("feuil2").Range("E5:H7").Value
'date cloture
Sheets("MAGASIN 6").Range("F" & der_ligne).Offset(rowoffset:=i, columnoffset:=0).Value = Sheets("feuil2").Range("E41:h43").Value
Next
'code_art
Call code_art
'designation
Call designation
'quantité
Call qte_manque
'copier - coller du tableau de données
Sheets("bin").Range(Cells(1, 1), Cells(nbligne, 3)).copy Sheets("MAGASIN6").Range(Cells(der_lign, 7))
End Sub
et le code d'une des macros appelés, ils sont quasiment identiques entres eux.
Code:
Sub qte_manque()
Dim numligne As Long
Dim nbligne As Long
Dim qte As Long
Dim j As Integer
Dim k As Integer
k = 0
numligne = nbligne * (3 / 2)
For j = 0 To numligne
qte = Sheets("feuil2").Range("f21:h22").Offset(rowoffset:=j, columnoffset:=0)
If qte <> 0 Then
Sheets("bin").Range("c1").Offset(rowoffset:=k, columnoffset:=0) = qte
k = k + 1
Else
End If
Next
End Sub