ptitbubu | Bonjour,
Je suis pas très bon en programmation VBA sous excell.
Je travaille actuellement sur fichier d'analyse de données.
Mes macros fonctionnent toute indépendamment les unes des autres mais quand je veux les exécuter en suivant il y a un bug.
J'ai bien trouvé une solution mais elle ne fonctionne que pour un cas précis.
Code :
- Sub Bilan_1()
- Sheets("EVRC - Semi-quantitatif" ).Activate
- Range("A4:A6" ).Copy
- Sheets("BILAN EVRC" ).Activate
- Range("A4:A6" ).PasteSpecial
- Sheets("EVRC - Semi-quantitatif" ).Activate
- Range("A22" ).Copy
- Sheets("BILAN EVRC" ).Activate
- Range("A8" ).PasteSpecial
- End Sub
- _________________________________________________________________
- Sub Bilan_2()
- Dim i As Integer
- Dim j As Integer
- Dim k As Integer
- k = 2
- i = 1
- While Sheets("EVRC - Semi-quantitatif" ).Cells(8, i) <> Empty
- i = i + 1
- Wend
- For j = 2 To i
- If Sheets("EVRC - Semi-quantitatif" ).Cells(22, j) = "Niveau 0" Or Sheets("EVRC - Semi-quantitatif" ).Cells(22, j) = "Niveau 1" Then
- Sheets("EVRC - Semi-quantitatif" ).Activate
- Sheets("EVRC - Semi-quantitatif" ).Range(Cells(4, j), Cells(6, j)).Copy
- Sheets("BILAN EVRC" ).Activate
- Sheets("BILAN EVRC" ).Range(Cells(4, k), Cells(6, k)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
- k = k + 1
- End If
- Next j
- End Sub
- _________________________________________________________________
- Sub bilan_3()
- Dim i As Integer
- Dim j As Integer
- Dim k As Integer
- k = 2
- i = 1
- While Sheets("EVRC - Semi-quantitatif" ).Cells(8, i) <> Empty
- i = i + 1
- Wend
- For j = 2 To i
- If Sheets("EVRC - Semi-quantitatif" ).Cells(22, j) = "Niveau 0" Or Sheets("EVRC - Semi-quantitatif" ).Cells(22, j) = "Niveau 1" Then
- Sheets("EVRC - Semi-quantitatif" ).Activate
- Sheets("EVRC - Semi-quantitatif" ).Range(Cells(22, j), Cells(22, j)).Copy
- Sheets("BILAN EVRC" ).Activate
- Sheets("BILAN EVRC" ).Range(Cells(8, k), Cells(8, k)).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
- , SkipBlanks:=False, Transpose:=False
- Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
- k = k + 1
- End If
- Next j
- End Sub
- _________________________________________________________________
- Sub BILAN_EVRC_1()
- Call Bilan_1
- Call Bilan_2
- Call bilan_3
- End Sub
- _________________________________________________________________
- Sub Bilan_4()
- Dim l As Integer
- Dim m As Integer
- Dim n As Integer
- n = 8
- l = 1
- While Sheets("EVRC - Quantitatif" ).Cells(8, l) <> Empty
- l = l + 1
- Wend
- For m = 2 To l
- If Sheets("EVRC - Quantitatif" ).Cells(10, m) = "Niveau 2" Or Sheets("EVRC - Quantitatif" ).Cells(10, m) = "Niveau 3" Then
- Sheets("EVRC - Quantitatif" ).Activate
- Sheets("EVRC - Quantitatif" ).Range(Cells(4, m), Cells(6, m)).Copy
- Sheets("BILAN EVRC" ).Activate
- Sheets("BILAN EVRC" ).Range(Cells(4, n), Cells(6, n)).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
- n = n + 1
- End If
- Next m
- End Sub
- _________________________________________________________________
- Sub bilan_5()
- Dim l As Integer
- Dim m As Integer
- Dim n As Integer
- n = 8
- l = 1
- While Sheets("EVRC - Quantitatif" ).Cells(8, l) <> Empty
- l = l + 1
- Wend
- For m = 2 To l
- If Sheets("EVRC - Quantitatif" ).Cells(10, m) = "Niveau 2" Or Sheets("EVRC - Quantitatif" ).Cells(10, m) = "Niveau 3" Then
- Sheets("EVRC - Quantitatif" ).Activate
- Sheets("EVRC - Quantitatif" ).Range(Cells(10, m), Cells(10, m)).Copy
- Sheets("BILAN EVRC" ).Activate
- Sheets("BILAN EVRC" ).Range(Cells(8, n), Cells(8, n)).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
- , SkipBlanks:=False, Transpose:=False
- Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
- n = n + 1
- End If
- Next m
- End Sub
- _________________________________________________________________
- Sub bilan_6()
- Dim l As Integer
- Dim m As Integer
- Dim n As Integer
- n = 8
- l = 1
- While Sheets("EVRC - Quantitatif" ).Cells(8, l) <> Empty
- l = l + 1
- Wend
- For m = 2 To l
- If Sheets("EVRC - Quantitatif" ).Cells(10, m) = "Niveau 2" Or Sheets("EVRC - Quantitatif" ).Cells(10, m) = "Niveau 3" Then
- Sheets("EVRC - Quantitatif" ).Activate
- Sheets("EVRC - Quantitatif" ).Range(Cells(16, m), Cells(16, m)).Copy
- Sheets("BILAN EVRC" ).Activate
- Sheets("BILAN EVRC" ).Range(Cells(9, n), Cells(9, n)).PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
- , SkipBlanks:=False, Transpose:=False
- Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
- :=False, Transpose:=False
- n = n + 1
- End If
- Next m
- End Sub
- _________________________________________________________________
- Sub BILAN_EVRC_2()
- Call Bilan_4
- Call bilan_5
- Call bilan_6
- End Sub
- _________________________________________________________________
- Sub BILAN_EVRC()
- Call BILAN_EVRC_1
- Call BILAN_EVRC_2
- End Sub
|
Avec ce code les données copier sont collées comme je le souhaite mais j'impose la colonne à partir d’où s'exécute "BILAN_EVRC_2" "n=8".
Et je souhaiterais que n = k . En résumé que "BILAN_EVRC_2" copie les données juste aprés celles copier par "BILAN_EVRC_1".
Merci pour votre aide. |