NaXiLeAn
Messages postés112Date d'inscriptionmercredi 27 juillet 2016StatutMembreDernière intervention 2 juin 2020
-
Modifié par NaXiLeAn le 1/08/2016 à 12:02
NaXiLeAn
Messages postés112Date d'inscriptionmercredi 27 juillet 2016StatutMembreDernière intervention 2 juin 2020
-
2 août 2016 à 12:26
Bonjour,
J'ai fichier Excel que je malmène depuis quelques jours, grâce à CCM.
[VBA explicite : tout est annoté ou presque puisque je suis en cours d’apprentissage des scripts]
J'ajoute des commandes puis en enlève puis en rajoute...
Aujourd'hui, je suis perdue!
Mon traitement ne fonctionne plus.
Il bloc à la copie des données vers mon fichier (à problèmes).
Si quelqu'un veut bien me filer un p'tit coup de pouce, ça serait tip top (ouai c'est naze comme expression mais je suis un peu naze comme je m'y mets).
à vot' bon coeur, msieur-dam' 8)
En vous remerciant.
_________________________________________________________
Option Explicit
Dim cellX As Range
Private Sub EnRouge() cellX.Interior.Color = RGB(255, 0, 0) End Sub Private Sub EnOrange() cellX.Interior.Color = RGB(255, 192, 0) End Sub Private Sub EnVert() cellX.Interior.Color = RGB(146, 208, 80) End Sub
Private Sub Controle_Click() 'Définition des traitement pour réduire leurs écriture Dim dcol As Integer, dlig As Long, i As Long
'Supprime l'affichage pour accelérer le traitement Application.ScreenUpdating = False
'Défini la feuille active Worksheets("1305").Select
' dernière colonne et dernière ligne dcol = Cells(1, Columns.Count).End(xlToLeft).Column dlig = Range("A" & Rows.Count).End(xlUp).Row
'supprimer les couleurs déjà existantes Range([A1], Cells(dlig, dcol)).Interior.ColorIndex = xlNone
'Efface les données existantes Range([A1], Cells(dlig, dcol)).ClearContents 'Efface le format de cellule existant Range([A1], Cells(dlig, dcol)).ClearFormats
'Intègre les données du fichier source sans le modifier Workbooks.Open Filename:="C:\Users\xx\Desktop\Fiche 1305\source\verifaprespaie.xlsx" Workbooks("verifaprespaie.xlsx").Sheets("VERIFAPRESPAIE").Cells.Copy _ Destination:=Workbooks("Fiche 1305_test.xlsm").Sheets("1305").Cells(1, 1) Workbooks("verifaprespaie.xlsx").Close False ' ferme sans sauve
'Envoi du traitement de la ligne 2 à la dernière ligne For i = 2 To dlig
'colorer les cellules vides => Colonne J If Range("J" & i) = 0 Then EnRouge ' col J : si vide
'colorer les cellules comprenant une date = mois en cours => Colonne O If IsDate(Range("O" & i).Value) Then If Year(Range("O" & i).Value) = Year(Date) And Month(Range("O" & i).Value) = Month(Date) Then EnRouge End If
'Set cellX = Range("O" & i) ' test colonne O : 'If IsDate(cellX) Then ' si date O = mois en cours 'If Year(cellX) = Year(Date) And Month(cellX) = Month(Date) Then EnRouge 'End If
If Range("U" & i) = "Chèque " Then EnRouge ' col U : si "Chèque"
If Range("BI" & i) < 0 Then EnRouge ' col BI : si < 0 If Range("BO" & i) <> 0 Then EnRouge ' col BO : si <> 0 If Range("BP" & i) <> 0 Then EnRouge ' col BP : si <> 0 If Range("BQ" & i) <> 0 Then EnRouge ' col BQ : si <> 0 If Range("BR" & i) <> 0 Then EnRouge ' col BR : si <> 0
'colorer les cellules CH=0 ET CJ<>0 => Colonne CJ If Range("CH" & i) = 0 And Range("CJ" & i) <> 0 Then Range("CJ" & i).Interior.Color = RGB(255, 0, 0) ': rouge End If
'colorer les cellules CI=0 ET CK<>0 => Colonne CK If Range("CI" & i) = 0 And Range("CK" & i) <> 0 Then Range("CK" & i).Interior.Color = RGB(255, 0, 0) ': rouge End If
'colorer les cellules CL=0 ET CM<>0 => Colonne CL ET CM If Range("CL" & i) = 0 And Range("CM" & i) <> 0 Then Range("CM" & i).Interior.Color = RGB(255, 0, 0) ': rouge End If
' calcul BZ : si BX <> 0 If Range("BX" & i) <> 0 Then Range("BZ" & i) = ((Range("Bw" & i) * Range("BY" & i) / Range("Bx" & i)) * 0.1) And Range("BZ" & i).Interior.Color = RGB(255, 0, 0) And Range("BZ" & i).NumberFormat = "0.00" End If
Call ColorContrôle
'Rétabli l'affichage supprimé pour accelérer le traitement 'Application.ScreenUpdating = True Next i
End Sub
Sub ColorContrôle() 'Ajouter un "X" si ligne à contrôler Dim dcol As Integer, dlig As Long, lig As Long, col As Integer 'Application.ScreenUpdating = False dcol = Cells(1, Columns.Count).End(xlToLeft).Column dlig = Range("A" & Rows.Count).End(xlUp).Row Cells(1, dcol + 1) = "Contrôle" For lig = 2 To dlig For col = 1 To dcol If Cells(lig, col).Interior.ColorIndex <> xlNone Then Cells(lig, dcol + 1) = "X": Exit For End If Next col Next lig 'supprimer les groupements de colonnes existants = ActiveSheet.Columns.Ungroup = True Then 'Effectuer le groupement des colonnes définies Range("C:C").Columns.Group Range("F:I").Columns.Group Range("K:N").Columns.Group Range("P:T").Columns.Group Range("V:BH").Columns.Group Range("BJ:BN").Columns.Group Range("BR:BR").Columns.Group Range("CN:DD").Columns.Group ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1
'Masquer des colonnes = Range("B:E").EntireColumn.Hidden = True
Bonjour gbinforme,
Je colle sur la feuille active car je lance la macro depuis un bouton ce trouvant sur cette même feuille.
http://www.cjoint.com/c/FHbkrayIo71
La copie se fait bien sur la feuille active et puis le traitement s'interrompt.
Merci
gbinforme
Messages postés14946Date d'inscriptionlundi 18 octobre 2004StatutContributeurDernière intervention24 juin 20204 711 1 août 2016 à 18:57
Bonjour NaXiLeAn,
Ton document s’appelle "Fiche-1305-test.xlsm"
et tu colles dans "Fiche_1305_test.xlsm"
NaXiLeAn
Messages postés112Date d'inscriptionmercredi 27 juillet 2016StatutMembreDernière intervention 2 juin 20201
>
gbinforme
Messages postés14946Date d'inscriptionlundi 18 octobre 2004StatutContributeurDernière intervention24 juin 2020 2 août 2016 à 12:26
Bonjour et merci gbinforme,
Effectivement, aujourd'hui ça fonctionne :£
Et ce, sans modif...Va comprendre?!
Merci merci merci et encore merci.
Modifié par NaXiLeAn le 1/08/2016 à 12:21
Je colle sur la feuille active car je lance la macro depuis un bouton ce trouvant sur cette même feuille.
http://www.cjoint.com/c/FHbkrayIo71
La copie se fait bien sur la feuille active et puis le traitement s'interrompt.
Merci
1 août 2016 à 18:57
Ton document s’appelle "Fiche-1305-test.xlsm"
et tu colles dans "Fiche_1305_test.xlsm"
Il ne faut pas confondre tiret et souligné ! Avec
cela fonctionne.
2 août 2016 à 12:26
Effectivement, aujourd'hui ça fonctionne :£
Et ce, sans modif...Va comprendre?!
Merci merci merci et encore merci.