grosquick59
XLDnaute Junior
Bonjour,
je suis débutant en VBA et je bloque toujours sur une macro de copier/coller.
Après avoir parcouru les forum je ne trouve pas la solution à mon problème. Je mets un fichier en pièce jointe pour plus de compréhension.
Mon projet porte sur une gestion documentaire.
Feuilles concernées
ws1 = Sheets("ENREGISTREMENT")
ws2 = Sheets("Liste_documentation")
Macro concernée = VALIDATIONDOCUMENTAIRE
Mon code fonctionne mais que si je cite une ligne précise.
OBJECTIF :
La demande de chaque utilisateur est transmise sur la feuille ws1 (ENREGISTREMENT).
Je dois ensuite pour chaque demande copier/coller la ligne dans la feuille ws2 (Liste_documentation).
Condition : dans la colonne A il doit être indiqué DIFFUSION.
Exemple :
Si A15 = DIFFUSION alors
chercher dans ws2 si le code en D15 existe. Si oui écraser la ligne avec les données. Si non alors copier/coller les données sur une ligne vierge.
J'espère que je suis assez compréhensible.
merci d'avance pour votre aide. Voici mon début de code (sans la condition)
grosquick59
je suis débutant en VBA et je bloque toujours sur une macro de copier/coller.
Après avoir parcouru les forum je ne trouve pas la solution à mon problème. Je mets un fichier en pièce jointe pour plus de compréhension.
Mon projet porte sur une gestion documentaire.
Feuilles concernées
ws1 = Sheets("ENREGISTREMENT")
ws2 = Sheets("Liste_documentation")
Macro concernée = VALIDATIONDOCUMENTAIRE
Mon code fonctionne mais que si je cite une ligne précise.
OBJECTIF :
La demande de chaque utilisateur est transmise sur la feuille ws1 (ENREGISTREMENT).
Je dois ensuite pour chaque demande copier/coller la ligne dans la feuille ws2 (Liste_documentation).
Condition : dans la colonne A il doit être indiqué DIFFUSION.
Exemple :
Si A15 = DIFFUSION alors
chercher dans ws2 si le code en D15 existe. Si oui écraser la ligne avec les données. Si non alors copier/coller les données sur une ligne vierge.
J'espère que je suis assez compréhensible.
merci d'avance pour votre aide. Voici mon début de code (sans la condition)
Code:
Sub VALIDATIONDOCUMENTAIRE2()
'a/Definir les variables et fonctions puis rechercher valeur dans la liste
Dim Code As String, LigF As Long
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Set ws1 = Sheets("ENREGISTREMENT")
Set ws2 = Sheets("Liste_documentation")
'b/macro pour diffusion/reconduction
' Mémoriser le code du document (colonne D)
With ws1
Code = Range("B15") & Format(Range("C15"), "000")
End With
' Avec la feuille
With ws2
On Error Resume Next
LigF = 0 ' Initialiser la ligne trouvée à ZERO
' Rechercher dans la colonne D le code correspondant
LigF = .Columns("D:D").Find(What:=Code, LookIn:=xlValues, LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False).Row
If LigF <> 0 Then
'inscrire dans la feuille la valeur de l'indice
.Cells(LigF, "D") = ws1.Range("D15")
.Cells(LigF, "E") = ws1.Range("E15")
.Cells(LigF, "F") = ws1.Range("F15")
.Cells(LigF, "G") = ws1.Range("G15")
.Cells(LigF, "I") = ws1.Range("I15")
End If
On Error GoTo 0
End With
grosquick59
Pièces jointes
Dernière édition: