mikael2235
XLDnaute Occasionnel
Bonjour le forum, 
J’ai fait une macro qui me recopie des données dans un autre tableau d’un autre fichier.
Ma macro recopie les données du fichier source : cellule E30 + plage cellule E32 à E39 et boucle ceci pour les colonnes E à AE
Par contre, je souhaiterais que ma macro, vérifie avant de recopier qu’il n’y a pas de cellules vides dans la plage x32 à x39, et que si elle détecte que toute la plage x32 à x39 est vide, elle arrête la boucle.
Le problème est que , je ne sais pas comment faire. Je pense que le code ci dessous est adapté, mais lorsque je le mets en place ma boucle ne s’arrête plus.
	
	
	
	
	
		
Je vous joins ma macro, et mon fichier exemple.
	
	
	
	
	
		
Merci pour votre aide.
	
		
			
		
		
	
				
			J’ai fait une macro qui me recopie des données dans un autre tableau d’un autre fichier.
Ma macro recopie les données du fichier source : cellule E30 + plage cellule E32 à E39 et boucle ceci pour les colonnes E à AE
Par contre, je souhaiterais que ma macro, vérifie avant de recopier qu’il n’y a pas de cellules vides dans la plage x32 à x39, et que si elle détecte que toute la plage x32 à x39 est vide, elle arrête la boucle.
Le problème est que , je ne sais pas comment faire. Je pense que le code ci dessous est adapté, mais lorsque je le mets en place ma boucle ne s’arrête plus.
		Code:
	
	
	' Selectionne la première cellule du tableau
Range("A1").Select
' Boucle tant que pas de cellule vide
Do While Not (IsEmpty(ActiveCell))
    NbLigne = NbLigne + 1
    Selection.Offset(1, 0).Select
Loop
	Je vous joins ma macro, et mon fichier exemple.
		Code:
	
	
	Sub Carte_Controle_Auto()
 
    '----Ouvre le fichier récap
    Range("A1").Select
    Workbooks.Open Filename:= _
        chemin_fichier_carte_controle
        
        
    '----Affiche la  feuille de données du classeur récap
    'Windows(nom_fichier_carte_controle).Activate
    'Sheets("données").Visible = True
    'ActiveSheet.Unprotect
            
    '----Début de la boucle----
    
    Dim n As Byte
    For n = 5 To 32 Step 2
            
            
    '----Insère 2 lignes et annule la mise en forme----
        
    Windows(nom_fichier_carte_controle).Activate
    Rows("6:6").Select
    Application.CutCopyMode = False
    Selection.Insert Shift:=xlDown
    Selection.Insert Shift:=xlDown
    Rows("6:7").Select
    Range("A7").Activate
    Selection.RowHeight = 12.75
    Selection.Interior.ColorIndex = xlNone
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    Selection.Borders(xlEdgeLeft).LineStyle = xlNone
    Selection.Borders(xlEdgeTop).LineStyle = xlNone
    Selection.Borders(xlEdgeBottom).LineStyle = xlNone
    Selection.Borders(xlEdgeRight).LineStyle = xlNone
    Selection.Borders(xlInsideVertical).LineStyle = xlNone
    Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
    Range("A6:L7").Select
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
    Selection.Borders(xlDiagonalUp).LineStyle = xlNone
    With Selection.Borders(xlEdgeLeft)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeTop)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeBottom)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlEdgeRight)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideVertical)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    With Selection.Borders(xlInsideHorizontal)
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = xlAutomatic
    End With
    Range("C4").Select
    
    
    '----Copie la date du jour sur fichier récap----
    
    Windows(nom_fichier_carte_controle).Activate
    Range("A6").Value = Date
    Windows(nom_fichier_feuille_releves).Activate
                   
    '----Copie l'heure de la moulée----
    
    Cells(30, n).Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows(nom_fichier_carte_controle).Activate
    Range("B6").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
             
    '----Copie les 8 valeurs (CB1 à CB4 × 2 moulées)dans tableau récap----
    
    Windows(nom_fichier_feuille_releves).Activate
    Cells(30, n).Select
    ActiveCell.Offset(2, 0).Resize(8).Select
    Application.CutCopyMode = False
    Selection.Copy
    Windows(nom_fichier_carte_controle).Activate
    Range("D6").Select
    Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=True
    Range("A8").Select
    Windows(nom_fichier_feuille_releves).Activate
    ActiveWindow.ScrollRow = 1
    Range("G10").Select
    
    'Supprime la ligne en trop, et recopie les limites, tolérances et la cible
    
    Windows(nom_fichier_carte_controle).Activate
    Rows("7:7").Select
    Selection.Delete Shift:=xlUp
    Range("A6:L6").Select
    Selection.Font.Bold = False
    With Selection.Font
        .Name = "helv"
        .Size = 8
        .Strikethrough = False
        .Superscript = False
        .Subscript = False
        .OutlineFont = False
        .Shadow = False
        .Underline = xlUnderlineStyleNone
        .ColorIndex = xlAutomatic
    End With
    Range("M7:Q7").Select
    Selection.AutoFill Destination:=Range("M6:Q7"), Type:=xlFillDefault
    Range("M6:Q7").Select
    ActiveWindow.ScrollColumn = 1
    Range("B11").Select
    
    Next
     
    '---- Enregistre le classeur de récap des données
    
    Windows(nom_fichier_carte_controle).Activate
    ActiveWorkbook.Close
    
  
End Sub
	Merci pour votre aide.