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.