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 SubJ'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: 
			
		
	
								
								
									
	
		
			
		
		
	
	
	
		
			
		
		
	
								
							
							 
	 
 
		 
 
		 
 
		 
 
		