Nadou69
XLDnaute Nouveau
Bonjour,
Je souhaite faire une macro qui me permet de copier certaines colonnes d'un onglet d'un classeur vers un autre classeur avec 2 conditions (l'une ou l'autre doit être vraie).
Je souhaite aussi que le remplissage de la ligne soit gris si oui apparait dans la colonne I.
Voici mon code :
J'ai un soucis d'onglet cible. J'ai une erreur 9 ici : Set wsCible = wbCible.Sheets("Feuil1") ' Remplacez par le nom de votre feuille cible J'ai eu beau changé le nom, rien y fait.
Merci pour votre aide.
Bonne journée
Je souhaite faire une macro qui me permet de copier certaines colonnes d'un onglet d'un classeur vers un autre classeur avec 2 conditions (l'une ou l'autre doit être vraie).
Je souhaite aussi que le remplissage de la ligne soit gris si oui apparait dans la colonne I.
Voici mon code :
VB:
Sub CopierColonnesSiConditionRemplie()
Dim wsSource As Worksheet
Dim wsCible As Worksheet
Dim dernièreLigne As Long
Dim i As Long
Dim ligneCible As Long
Dim wbSource As Workbook
Dim wbCible As Workbook
Dim cheminSource As String
Dim cheminCible As String
' Définir les chemins des classeurs
cheminSource = "U:\DRH-BCS\A REMPLIR TABLEAUX DE SUIVI\tableau situations individuelles.xlsm" ' Remplacez par le chemin de votre classeur source
cheminCible = "U:\DRH-BCS\dossiers individuels\suivi hebdomadaire dossiers individuels.xlsm" ' Remplacez par le chemin de votre classeur cible
' Ouvrir les classeurs
Set wbSource = Workbooks.Open(cheminSource)
Set wbCible = Workbooks.Open(cheminCible)
' Définir les feuilles de calcul
Set wsSource = wbSource.Sheets("Combiné") ' Remplacez par le nom de votre feuille source
Set wsCible = wbCible.Sheets("Feuil1") ' Remplacez par le nom de votre feuille cible
' Dernière ligne de la feuille Source
dernièreLigne = wsSource.Cells(wsSource.Rows.Count, "A").End(xlUp).Row
ligneCible = 1 ' Initialiser la première ligne de la feuille Cible
' Effacer le contenu de la feuille Cible avant de copier les données
wsCible.Cells.Clear
' Boucle à travers chaque ligne de la feuille Source
For i = 1 To dernièreLigne
' Vérifier les conditions
If wsSource.Cells(i, "N").Value = "oui" Or wsSource.Cells(i, "O").Value = "Oui" Then
' Copier les colonnes C, D, F, G, H, B, K, M et O
wsCible.Cells(ligneCible, "A").Value = wsSource.Cells(i, "C").Value
wsCible.Cells(ligneCible, "B").Value = wsSource.Cells(i, "D").Value
wsCible.Cells(ligneCible, "C").Value = wsSource.Cells(i, "F").Value
wsCible.Cells(ligneCible, "C").Value = wsSource.Cells(i, "G").Value
wsCible.Cells(ligneCible, "C").Value = wsSource.Cells(i, "H").Value
wsCible.Cells(ligneCible, "C").Value = wsSource.Cells(i, "B").Value
wsCible.Cells(ligneCible, "C").Value = wsSource.Cells(i, "K").Value
wsCible.Cells(ligneCible, "C").Value = wsSource.Cells(i, "M").Value
wsCible.Cells(ligneCible, "C").Value = wsSource.Cells(i, "O").Value
ligneCible = ligneCible + 1 ' Passer à la ligne suivante de la feuille Cible
End If
Next i
Selection.FormatConditions.Add Type:=xlExpression, Formula1:="=$I2=""oui"""
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.14996795556505
End With
Selection.FormatConditions(1).StopIfTrue = False
MsgBox "Les données ont été copiées avec succès!", vbInformation
End Sub
J'ai un soucis d'onglet cible. J'ai une erreur 9 ici : Set wsCible = wbCible.Sheets("Feuil1") ' Remplacez par le nom de votre feuille cible J'ai eu beau changé le nom, rien y fait.
Merci pour votre aide.
Bonne journée
Dernière édition: