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