Bonjour, j’écris des macros pour mon besoin au travail mais là je bloque sur la boucle for car j’ai besoin de demander combien de colonnes j’ai besoin de récupérer et de pouvoir les concassés dans un nouveau fichier dans un ordre défini à la demande. Voici la macro de base où j’ai défini moi même le nombre de colonnes. je voudrais poser la question car suivant les essais le nombre de colonnes diffères.
n = Val(InputBox(« Combien d’essais avez-vous à traiter ? », « Nombres d’essais », « 3 »))
chemin = CStr(InputBox(« Quel est le chemin d’acces de vos fichiers ? », « Explorer », « … »))
NomSerie = CStr(InputBox(« Quel est le nom de votre essai ? », « Explorer », « XXXXX »))
h = Right(chem, 1)
If h <> "\" Then
chemin = chemin & "\"
End If
'Ouverture des fichiers Sources
For cycle = 1 To n
Workbooks.OpenText Filename:=CStr(chemin) & CStr(NomSerie) & "-" & CStr(cycle) & ".xls", Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), Array(7, 1), Array(8, 1))
Next
'Choisir les colonnes de traitement de données
Windows(CStr(NomSerie) & "-1.xls").Activate
Fv = InputBox("Indiquer la colonne de la Force Vérin ", "COLONNE FORCE", "P")
C1 = InputBox("Indiquer la colonne du Capteur C1", "Capteur C1", "R")
C2 = InputBox("Indiquer la colonne du Capteur C2", "Capteur C2", "S")
C3 = InputBox("Indiquer la colonne du Capteur C3", "Capteur C3", "T")
C4 = InputBox("Indiquer la colonne du Capteur C4", "Capteur C4", "U")
C5 = InputBox("Indiquer la colonne du Capteur C5", "Capteur C5", "V")
C6 = InputBox("Indiquer la colonne du Capteur C6", "Capteur C6", "W")
T = InputBox("Indiquer la colonne du Temps", "Temps", "D")
LigneStart = InputBox("Indiquer la ligne où commencer", "LIGNE", "17")
cellfin(0) = 3
For cycle = 1 To n
Windows("resultat 23033.xlsm").Activate
Sheets("Données Brute").Activate
Cells(cellfin(cycle - 1) + 1, 1).Select
' Copy du Temps dans le fichier pour tema
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
Cells(LigneStart, T).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("resultat 23033.xlsm").Activate
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy de Force au Vérin dans le fichier pour tema
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
Cells(LigneStart, Fv).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("resultat 23033.xlsm").Activate
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlSubtract, _
SkipBlanks:=False, Transpose:=False
'Copy de C1 dans le fichier pour tema
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
Cells(LigneStart, C1).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("resultat 23033.xlsm").Activate
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy de C2 dans le fichier pour tema
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
Cells(LigneStart, C2).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("resultat 23033.xlsm").Activate
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy de C3 dans le fichier pour tema
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
Cells(LigneStart, C3).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("resultat 23033.xlsm").Activate
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy de C4 dans le fichier pour tema
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
Cells(LigneStart, C4).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("resultat 23033.xlsm").Activate
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy de C5 dans le fichier pour tema
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
Cells(LigneStart, C5).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("resultat 23033.xlsm").Activate
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
'Copy de C6 dans le fichier pour tema
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
Cells(LigneStart, C6).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Windows("resultat 23033.xlsm").Activate
ActiveCell.Offset(0, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues
'compter le nombre de ligne dans le cycle
Cells(cellfin(cycle - 1) + 1, 3).Select
Selection.End(xlDown).Select
cellfin(cycle) = ActiveCell.Row
'cycle
Cells(cellfin(cycle - 1) + 1, 1).Select
Cells(cellfin(cycle - 1) + 1, 1).Value = cycle
Selection.AutoFill Destination:=Range("A" & cellfin(cycle - 1) + 1 & ":A" & cellfin(cycle))
Windows(CStr(NomSerie) & "-" & CStr(cycle) & ".xls").Activate
ActiveWorkbook.Close SaveChanges:=False
Next
Range(« j4 »).Select
Selection.AutoFill Destination:=Range(« j4:j21244 »)
Range(« j4:j21244 »).Select
End Sub