Afficher pour chaque evenement le personne
Résolu/Fermé
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
-
Modifié par baladur13 le 17/08/2016 à 10:04
thev Messages postés 1962 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 18 février 2025 - 20 sept. 2016 à 09:08
thev Messages postés 1962 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 18 février 2025 - 20 sept. 2016 à 09:08
A voir également:
- Afficher pour chaque evenement le personne
- Afficher appdata - Guide
- Afficher mot de passe wifi android - Guide
- Afficher taille dossier windows - Guide
- Windows 11 afficher d'autres options - Guide
- Afficher google - Guide
15 réponses
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
17 août 2016 à 20:51
17 août 2016 à 20:51
bonsoir,
ci-dessous proposition de code pour récupérer les congés payés
Ajouter référence Microsoft Scripting Runtime
ci-dessous proposition de code pour récupérer les congés payés
Ajouter référence Microsoft Scripting Runtime
Sub Presentation()
'..... Déclaration variables
Dim dates() ' tableau des dates
Dim nbtr_A2H2 As Range ' plage A2:H2 de la feuille "nombredetr"
Dim codes_salariés As New Dictionary ' dictionnaire des codes salariés
Dim CP1 As Range, CP As Range
Dim nom_prénom As String, date_début As String, date_fin As String
Dim CP_col_prec As Integer
Dim date_début_OK As Boolean
'..... initialisation de la feuille "nombredetr"
With Worksheets("nombredetr")
.Cells.Clear
.Columns("A:A").ColumnWidth = 25
.Range("A1").Value = "Nom et Prénom"
.Range("B1").Value = "Code VAT System"
.Range("C1").Value = "Code Salarié"
.Range("D1").Value = "Code Rubrique"
.Range("E1").Value = "Date de début"
.Range("F1").Value = "Date de Fin"
.Range("G1").Value = "Plage de début"
.Range("H1").Value = "Plage de Fin"
Set nbtr_A2H2 = .Range("A2:H2") 'première plage à remplir de la feuille "nombredetr"
End With
With Worksheets("nombredetr").Range("A1:H1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 6299648
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Worksheets("nombredetr").Range("A1:H1").Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
' .HorizontalAlignment = xlCenter
' .Borders.Weight = xlThin
End With
'..... chargement du code salarié dans un dictionnaire des codes avec pour clé nom + prénom
With Worksheets("détails")
With .UsedRange
dernière_ligne = .Row - 1 + .Rows.Count '1ère ligne plage utilisée - 1 + nombre de lignes utilisées
End With
For i = 2 To dernière_ligne
clé = .Cells(i, "A").Value & " " & .Cells(i, "B").Value
If Not codes_salariés.Exists(clé) Then
codes_salariés.Add Key:=clé, Item:=.Cells(i, "C").Value
Else
MsgBox " nom + prénom en double " & clé
End If
Next i
End With
'..... traitement de la feuille "Planning_conges.xls"
With Worksheets("Planning_conges.xls")
Set xl = Application
dates = xl.Transpose(xl.Transpose(.Rows(4).Value)) 'tableau à une dimension des dates de la ligne 4 de la feuille référencée
j = 0 'intialisation indice de de la feuille "nombredetr"
With .UsedRange
dernière_ligne = .Row - 1 + .Rows.Count '1ère ligne plage utilisée - 1 + nombre de lignes utilisées
End With
For i = 5 To dernière_ligne
'recherche premier congé payé dans la ligne i de la feuille référencée
Set CP1 = .Rows(i).Find("CP")
If Not CP1 Is Nothing Then
nom_prénom = .Cells(i, "A")
date_début = dates(CP1.Column)
If date_début = Empty Then date_début = dates(CP1.Column - 1) & " après-midi" _
Else date_début = date_début & " matin"
date_début_OK = True
'recherche congés payés après le premier dans la ligne i de la feuille référencée
Set CP = CP1
Do
If Not date_début_OK Then
date_début = dates(CP.Column)
If date_début = Empty Then date_début = dates(CP.Column - 1) & " après-midi" _
Else date_début = date_début & " matin"
date_début_OK = True
End If
date_fin = dates(CP.Column)
If date_fin = Empty Then date_fin = dates(CP.Column - 1) & " après-midi" _
Else date_fin = date_fin & " matin"
CP_col_prec = CP.Column
Set CP = .Rows(i).FindNext(CP) 'recherche CP suivant
If CP.Column <> CP_col_prec + 1 Then 'écriture ligne feuille "nombredetr" si période différente
GoSub ecr_ligne_nbtr
j = j + 1
date_début_OK = False
End If
Loop Until CP.Column = CP1.Column 'recherche jusqu'à n'il y ait plus de CP dans ligne i
End If
Next i
End With
Exit Sub
'..... sous-procédure de remplissage de la feuille "nombredetr"
ecr_ligne_nbtr:
nbtr_A2H2.Cells(, "A").Offset(j) = nom_prénom 'nom et prénom
nbtr_A2H2.Cells(, "B").Offset(j) = "vatcode" 'vatcode
nbtr_A2H2.Cells(, "C").Offset(j) = codes_salariés(nom_prénom) 'code salarié
nbtr_A2H2.Cells(, "D").Offset(j) = "'" & "330000" 'code rubrique CP"
nbtr_A2H2.Cells(, "E").Offset(j) = date_début 'date_début
nbtr_A2H2.Cells(, "F").Offset(j) = date_fin 'date_fin
Return
'..... fin sous-procédure de remplissage de la feuille "nombredetr"
End Sub
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
18 août 2016 à 14:22
18 août 2016 à 14:22
Bonjour ci-joint code modifié pour intégration plages début et fin
Sub Presentation()
'..... Déclaration variables
Dim dates() ' tableau des dates
Dim nbtr_A2H2 As Range ' plage A2:H2 de la feuille "nombredetr"
Dim codes_salariés As New Dictionary ' dictionnaire des codes salariés
Dim CP1 As Range, CP As Range
Dim nom_prénom As String, date_début As String, date_fin As String, plage_début As String, plage_fin As String
Dim CP_col_prec As Integer
Dim date_début_OK As Boolean
'..... initialisation de la feuille "nombredetr"
With Worksheets("nombredetr")
.Cells.Clear
.Columns("A:A").ColumnWidth = 25
.Range("A1").Value = "Nom et Prénom"
.Range("B1").Value = "Code VAT System"
.Range("C1").Value = "Code Salarié"
.Range("D1").Value = "Code Rubrique"
.Range("E1").Value = "Date de début"
.Range("F1").Value = "Date de Fin"
.Range("G1").Value = "Plage de début"
.Range("H1").Value = "Plage de Fin"
Set nbtr_A2H2 = .Range("A2:H2") 'première plage à remplir de la feuille "nombredetr"
End With
With Worksheets("nombredetr").Range("A1:H1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 6299648
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Worksheets("nombredetr").Range("A1:H1").Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
' .HorizontalAlignment = xlCenter
' .Borders.Weight = xlThin
End With
'..... chargement du code salarié dans un dictionnaire des codes avec pour clé nom + prénom
With Worksheets("détails")
With .UsedRange
dernière_ligne = .Row - 1 + .Rows.Count '1ère ligne plage utilisée - 1 + nombre de lignes utilisées
End With
For i = 2 To dernière_ligne
clé = .Cells(i, "A").Value & " " & .Cells(i, "B").Value
If Not codes_salariés.Exists(clé) Then
codes_salariés.Add Key:=clé, Item:=.Cells(i, "C").Value
Else
MsgBox " nom + prénom en double " & clé
End If
Next i
End With
'..... traitement de la feuille "Planning_conges.xls"
With Worksheets("Planning_conges.xls")
Set xl = Application
dates = xl.Transpose(xl.Transpose(.Rows(4).Value)) 'tableau à une dimension des dates de la ligne 4 de la feuille référencée
j = 0 'intialisation indice de de la feuille "nombredetr"
With .UsedRange
dernière_ligne = .Row - 1 + .Rows.Count '1ère ligne plage utilisée - 1 + nombre de lignes utilisées
End With
For i = 5 To dernière_ligne
'recherche premier congé payé dans la ligne i de la feuille référencée
Set CP1 = .Rows(i).Find("CP")
If Not CP1 Is Nothing Then
nom_prénom = .Cells(i, "A")
date_début = dates(CP1.Column)
plage_début = "journée"
If date_début = Empty Then
date_début = dates(CP1.Column - 1): If CP1.Offset(, -1) = Empty Then plage_début = "après-midi"
Else: If CP1.Offset(, 1) = Empty Then plage_début = "matinée"
End If
date_début_OK = True
'recherche congés payés après le premier dans la ligne i de la feuille référencée
Set CP = CP1
Do
If Not date_début_OK Then
date_début = dates(CP.Column)
plage_début = "journée"
If date_début = Empty Then
date_début = dates(CP.Column - 1): If CP.Offset(, -1) = Empty Then plage_début = "après-midi"
Else: If CP.Offset(, 1) = Empty Then plage_début = "matinée"
End If
date_début_OK = True
End If
date_fin = dates(CP.Column)
plage_fin = "journée"
If date_fin = Empty Then
date_fin = dates(CP.Column - 1): If CP.Offset(, -1) = Empty Then plage_fin = "après-midi"
Else: If CP.Offset(, 1) = Empty Then plage_fin = "matinée"
End If
CP_col_prec = CP.Column
Set CP = .Rows(i).FindNext(CP) 'recherche CP suivant
If CP.Column <> CP_col_prec + 1 Then 'écriture ligne feuille "nombredetr" si période différente
GoSub ecr_ligne_nbtr
j = j + 1
date_début_OK = False
End If
Loop Until CP.Column = CP1.Column 'recherche jusqu'à n'il y ait plus de CP dans ligne i
End If
Next i
End With
Exit Sub
'..... sous-procédure de remplissage de la feuille "nombredetr"
ecr_ligne_nbtr:
nbtr_A2H2.Cells(, "A").Offset(j) = nom_prénom 'nom et prénom
nbtr_A2H2.Cells(, "B").Offset(j) = "vatcode" 'vatcode
nbtr_A2H2.Cells(, "C").Offset(j) = "'" & codes_salariés(nom_prénom) 'code salarié
nbtr_A2H2.Cells(, "D").Offset(j) = "'" & "330000" 'code rubrique CP"
nbtr_A2H2.Cells(, "E").Offset(j) = date_début 'date_début
nbtr_A2H2.Cells(, "F").Offset(j) = date_fin 'date_fin
nbtr_A2H2.Cells(, "G").Offset(j) = plage_début 'plage_début
nbtr_A2H2.Cells(, "H").Offset(j) = plage_fin 'plage_fin
Return
'..... fin sous-procédure de remplissage de la feuille "nombredetr"
End Sub
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
18 août 2016 à 16:36
18 août 2016 à 16:36
Merci beaucoup ça marche parfaitement pour CP mais je dois rajouter les autres types de congés à mon tableau. J ai essayé de refaire la meme chose que vous mais il n y a rien qui change sur mon tableau
Deplus, est ce qu il y a moyen que mes codes rubriques et les libellés soient pris automatiquement de la feuille rubrique. j'ai pensé aux dictionnaires mais je vois pas encore comment
Voila le code que j ai "modifié"
Et encore merci beaucoup
Deplus, est ce qu il y a moyen que mes codes rubriques et les libellés soient pris automatiquement de la feuille rubrique. j'ai pensé aux dictionnaires mais je vois pas encore comment
Voila le code que j ai "modifié"
Sub Presentation()
'..... Déclaration variables
Dim dates() ' tableau des dates
Dim nbtr_A2H2 As Range ' plage A2:H2 de la feuille "nombredetr"
Dim codes_salariés As New Dictionary ' dictionnaire des codes salariés
Dim CP1 As Range, CP As Range
Dim nom_prénom As String, date_début As String, date_fin As String, plage_début As String, plage_fin As String
Dim CP_col_prec As Integer
Dim date_début_OK As Boolean
'..... initialisation de la feuille "nombredetr"
With Worksheets("nombredetr")
.Cells.Clear
.Columns("A:A").ColumnWidth = 25
.Range("A1").Value = "Nom et Prénom"
.Range("B1").Value = "Code VAT System"
.Range("C1").Value = "Code Salarié"
.Range("D1").Value = "Code Rubrique"
.Range("E1").Value = "Libellé de la rubrique"
.Range("F1").Value = "Date de début"
.Range("G1").Value = "Date de Fin"
.Range("H1").Value = "Plage début absence"
.Range("I1").Value = "Plage fin absence"
.Range("J1").Value = "Valeur"
.Range("K1").Value = "Désactiver le calcul auto de l'indemnité"
.Range("L1").Value = "Hospitalisation"
.Range("M1").Value = "Nombre d'enfants"
.Range("N1").Value = "Prolongation"
.Range("O1").Value = "Date accident"
Set nbtr_A2H2 = .Range("A2:H2") 'première plage à remplir de la feuille "nombredetr"
End With
With Worksheets("nombredetr").Range("A1:O1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 6299648
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Worksheets("nombredetr").Range("A1:O1").Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
' .HorizontalAlignment = xlCenter
' .Borders.Weight = xlThin
End With
'..... chargement du code salarié dans un dictionnaire des codes avec pour clé nom + prénom
With Worksheets("détails")
With .UsedRange
dernière_ligne = .Row - 1 + .Rows.Count '1ère ligne plage utilisée - 1 + nombre de lignes utilisées
End With
For I = 2 To dernière_ligne
clé = .Cells(I, "A").Value & " " & .Cells(I, "B").Value
If Not codes_salariés.Exists(clé) Then
codes_salariés.Add Key:=clé, Item:=.Cells(I, "C").Value
Else
MsgBox " nom + prénom en double " & clé
End If
Next I
End With
'..... traitement de la feuille "Planning_conges.xls"
With Worksheets("Planning_conges.xls")
Set xl = Application
dates = xl.Transpose(xl.Transpose(.Rows(4).Value)) 'tableau à une dimension des dates de la ligne 4 de la feuille référencée
J = 0 'intialisation indice de de la feuille "nombredetr"
With .UsedRange
dernière_ligne = .Row - 1 + .Rows.Count '1ère ligne plage utilisée - 1 + nombre de lignes utilisées
End With
For I = 5 To dernière_ligne
'recherche premier congé payé dans la ligne i de la feuille référencée
Set CP1 = .Rows(I).Find("CP")
If Not CP1 Is Nothing Then
nom_prénom = .Cells(I, "A")
date_début = dates(CP1.Column)
plage_début = "jr"
If date_début = Empty Then
date_début = dates(CP1.Column - 1): If CP1.Offset(, -1) = Empty Then plage_début = "pm"
Else: If CP1.Offset(, 1) = Empty Then plage_début = "am"
End If
date_début_OK = True
'recherche congés payés après le premier dans la ligne i de la feuille référencée
Set CP = CP1
Do
If Not date_début_OK Then
date_début = dates(CP.Column)
plage_début = "jr"
If date_début = Empty Then
date_début = dates(CP.Column - 1): If CP.Offset(, -1) = Empty Then plage_début = "pm"
Else: If CP.Offset(, 1) = Empty Then plage_début = "am"
End If
date_début_OK = True
End If
date_fin = dates(CP.Column)
plage_fin = "jr"
If date_fin = Empty Then
date_fin = dates(CP.Column - 1): If CP.Offset(, -1) = Empty Then plage_fin = "pm"
Else: If CP.Offset(, 1) = Empty Then plage_fin = "am"
End If
CP_col_prec = CP.Column
Set CP = .Rows(I).FindNext(CP) 'recherche CP suivant
If CP.Column <> CP_col_prec + 1 Then 'écriture ligne feuille "nombredetr" si période différente
GoSub ecr_ligne_nbtr
J = J + 1
date_début_OK = False
End If
Loop Until CP.Column = CP1.Column 'recherche jusqu'à n'il y ait plus de CP dans ligne i
End If
Next I
End With
Exit Sub
'..... sous-procédure de remplissage de la feuille "nombredetr"
'..... traitement de la feuille "Planning_conges.xls"
With Worksheets("Planning_conges.xls")
Set xl = Application
dates = xl.Transpose(xl.Transpose(.Rows(4).Value)) 'tableau à une dimension des dates de la ligne 4 de la feuille référencée
J = 0 'intialisation indice de de la feuille "nombredetr"
With .UsedRange
dernière_ligne = .Row - 1 + .Rows.Count '1ère ligne plage utilisée - 1 + nombre de lignes utilisées
End With
For I = 5 To dernière_ligne
Set CP2 = .Rows(I).Find("M")
If Not CP2 Is Nothing Then
nom_prénom = .Cells(I, "A")
date_début = dates(CP2.Column)
plage_début = "jr"
If date_début = Empty Then
date_début = dates(CP2.Column - 1): If CP1.Offset(, -1) = Empty Then plage_début = "pm"
Else: If CP2.Offset(, 1) = Empty Then plage_début = "am"
End If
date_début_OK = True
'recherche congés payés après le premier dans la ligne i de la feuille référencée
Set CP = CP2
Do
If Not date_début_OK Then
date_début = dates(CP.Column)
plage_début = "jr"
If date_début = Empty Then
date_début = dates(CP.Column - 1): If CP.Offset(, -1) = Empty Then plage_début = "pm"
Else: If CP.Offset(, 1) = Empty Then plage_début = "matinée"
End If
date_début_OK = True
End If
date_fin = dates(CP.Column)
plage_fin = "jr"
If date_fin = Empty Then
date_fin = dates(CP.Column - 1): If CP.Offset(, -1) = Empty Then plage_fin = "pm"
Else: If CP.Offset(, 1) = Empty Then plage_fin = "am"
End If
CP_col_prec = CP.Column
Set CP = .Rows(I).FindNext(CP) 'recherche CP suivant
If CP.Column <> CP_col_prec + 1 Then 'écriture ligne feuille "nombredetr" si période différente
GoSub ecr_ligne_nbtr
J = J + 1
date_début_OK = False
End If
Loop Until CP.Column = CP2.Column 'recherche jusqu'à n'il y ait plus de CP dans ligne i
End If
Next I
End With
Exit Sub
'..... sous-procédure de remplissage de la feuille "nombredetr"
ecr_ligne_nbtr:
nbtr_A2H2.Cells(, "A").Offset(J) = nom_prénom 'nom et prénom
nbtr_A2H2.Cells(, "B").Offset(J) = "vatcode" 'vatcode
nbtr_A2H2.Cells(, "C").Offset(J) = "'" & codes_salariés(nom_prénom) 'code salarié
nbtr_A2H2.Cells(, "D").Offset(J) = "'" & "330000" 'code rubrique CP"
nbtr_A2H2.Cells(, "E").Offset(J) = "'" & "Jours d'absence congés payés"
nbtr_A2H2.Cells(, "F").Offset(J) = date_début 'date_début
nbtr_A2H2.Cells(, "G").Offset(J) = date_fin 'date_fin
nbtr_A2H2.Cells(, "H").Offset(J) = plage_début 'plage_début
nbtr_A2H2.Cells(, "I").Offset(J) = plage_fin 'plage_fin
Return
'..... fin sous-procédure de remplissage de la feuille "nombredetr"
Return
'..... fin sous-procédure de remplissage de la feuille "nombredetr"
End Sub
Sub ExportRangetoFile()
Dim Rng As Range
Dim WorkRng As Range
Dim xFile As Variant
Dim xFileString As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ActiveSheet.Copy
Application.ActiveSheet.Cells.Clear
WorkRng.Copy Application.ActiveSheet.Range("A1")
Set xFile = CreateObject("Scripting.FileSystemObject")
xFileString = Application.GetSaveAsFilename("", filefilter:="Comma Separated Text (*.CSV), *.CSV")
Application.ActiveWorkbook.SaveAs FileName:=xFileString, FileFormat:=xlCSV, CreateBackup:=False
End Sub
Et encore merci beaucoup
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
>
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
18 août 2016 à 18:56
18 août 2016 à 18:56
Bonjour,
Si la demande porte sur tous les types de congé, la recherche doit alors être faite sur le code de la couleur.
Pour pouvoir tester les bons codes couleurs, pouvez-vous me joindre dans un fichier Excel la ligne 2 de la feuille "Planning_conges.xls".
Pour ce qui concerne les rubriques de congé, le chargement dans un dictionnaire est possible à condition que les codes couleurs soient exactement les mêmes que ceux figurant dans la feuille "Planning_conges.xls" .
Si la demande porte sur tous les types de congé, la recherche doit alors être faite sur le code de la couleur.
Pour pouvoir tester les bons codes couleurs, pouvez-vous me joindre dans un fichier Excel la ligne 2 de la feuille "Planning_conges.xls".
Pour ce qui concerne les rubriques de congé, le chargement dans un dictionnaire est possible à condition que les codes couleurs soient exactement les mêmes que ceux figurant dans la feuille "Planning_conges.xls" .
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
Modifié par thev le 19/08/2016 à 02:24
Modifié par thev le 19/08/2016 à 02:24
Bonsoir,
ci-dessous code permettant de gérer les couleurs de congé à partir de la ligne 2 de la feuille "Planning_conges.xls"
ci-dessous code permettant de gérer les couleurs de congé à partir de la ligne 2 de la feuille "Planning_conges.xls"
Sub Presentation()
'..... Déclaration variables
Dim dates() ' tableau des dates
Dim rubriques_congé As New Dictionary ' dictionnaire des rubriques de congé
Dim codes_salariés As New Dictionary ' dictionnaire des codes salariés
Dim nom_prénom As String, date_début As String, date_fin As String, plage_début As String, plage_fin As String
Dim c As Integer, colonne_congé As Integer, couleur_congé As Long, couleur_congé_prec As Long
Dim date_début_OK As Boolean
Dim i As Long, j As Long
Dim clé As Variant
Dim rubrique As Range, lib_rubrique As String
'..... initialisation de la feuille "nombredetr"
With Worksheets("nombredetr")
.Cells.Clear
.Columns("A:A").ColumnWidth = 25
.Range("A1").Value = "Nom et Prénom"
.Range("B1").Value = "Code VAT System"
.Range("C1").Value = "Code Salarié"
.Range("D1").Value = "Code Rubrique"
.Range("E1").Value = "Date de début"
.Range("F1").Value = "Date de Fin"
.Range("G1").Value = "Plage de début"
.Range("H1").Value = "Plage de Fin"
With .Range("A1:H1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 6299648
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With .Range("A1:H1").Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
' .HorizontalAlignment = xlCenter
' .Borders.Weight = xlThin
End With
End With
'..... chargement des rubriques congés dans un dictionnaire des rubriques avec pour clé le code couleur
'..... à partir de la ligne 2 de la feuille "Planning_conges.xls"
With Worksheets("Planning_conges.xls")
For Each rubrique In .Rows(2).SpecialCells(xlCellTypeConstants)
clé = rubrique.Offset(, -1).Interior.Color
If Not rubriques_congé.Exists(clé) Then
rubriques_congé.Add Key:=clé, Item:=rubrique
Else
MsgBox " couleur en double pour la rubrique " & rubrique
End If
Next rubrique
End With
'..... chargement du code salarié dans un dictionnaire des codes salariés avec pour clé nom + prénom
'..... à partir de la feuille "détails"
With Worksheets("détails")
With .UsedRange
dern_ligne = .Row + .Rows.Count - 1 '1ère ligne vide (= 1ère ligne utilisée + nombre lignes utilisées) - 1
End With
For i = 2 To dern_ligne
clé = .Cells(i, "A").Value & " " & .Cells(i, "B").Value
If Not codes_salariés.Exists(clé) Then
codes_salariés.Add Key:=clé, Item:=.Cells(i, "C").Value
Else
MsgBox " nom + prénom en double " & clé
End If
Next i
End With
'..... traitement de la feuille "Planning_conges.xls"
With Worksheets("Planning_conges.xls")
Set xl = Application
dates = xl.Transpose(xl.Transpose(.Rows(4).Value)) 'tableau à une dimension des dates de la ligne 4 de la feuille référencée
j = 2 'intialisation indice de de la feuille "nombredetr"
With .UsedRange
dern_ligne = .Row + .Rows.Count - 1 '1ère ligne vide (= 1ère ligne utilisée + nombre lignes utilisées) - 1
dern_colonne = .Column + .Columns.Count - 1 '1ère colonne vide (= 1ère colonne utilisée + nombre colonnes utilisées) - 1
End With
For i = 5 To dern_ligne
nom_prénom = .Cells(i, "A")
'recherche code couleur dans la ligne i de la feuille référencée
date_début_OK = False
colonne_congé = 2
couleur_congé = 0
For c = 2 To dern_colonne
clé = .Cells(i, c).Interior.Color
If rubriques_congé.Exists(clé) Then
couleur_congé = clé
colonne_congé = c
'écriture ligne feuille "nombredetr" si couleur différente
If date_début_OK Then
If couleur_congé <> couleur_congé_prec Then
lib_rubrique = rubriques_congé(couleur_congé_prec)
GoSub ecr_ligne_nbtr 'écriture ligne feuille "nombredetr"
j = j + 1 'incrémentation indice de de la feuille "nombredetr"
date_début_OK = False
End If
End If
'initialisation de la date début
If Not date_début_OK Then
couleur_congé_prec = couleur_congé
date_début = dates(c)
plage_début = "jr"
If date_début = Empty Then
date_début = dates(c - 1): If .Cells(i, c - 1).Interior.Color <> couleur_congé Then plage_début = "pm"
Else: If .Cells(i, c + 1).Interior.Color <> couleur_congé Then plage_début = "am"
End If
date_début_OK = True
End If
'remplissage de la date fin
date_fin = dates(c)
plage_fin = "jr"
If date_fin = Empty Then
date_fin = dates(c - 1): If .Cells(i, c - 1).Interior.Color <> couleur_congé Then plage_fin = "pm"
Else: If .Cells(i, c + 1).Interior.Color <> couleur_congé Then plage_fin = "am"
End If
End If
'écriture ligne feuille "nombredetr" si période différente ou dernière colonne traitée
If c <> colonne_congé _
Or c = dern_colonne Then
If date_début_OK Then
lib_rubrique = rubriques_congé(couleur_congé)
GoSub ecr_ligne_nbtr 'écriture ligne feuille "nombredetr"
j = j + 1 'incrémentation indice de de la feuille "nombredetr"
date_début_OK = False
End If
End If
Next c
Next i
End With
Exit Sub
'..... sous-procédure de remplissage de la feuille "nombredetr"
ecr_ligne_nbtr:
With Worksheets("nombredetr")
.Cells(j, "A") = nom_prénom 'nom et prénom
.Cells(j, "B") = "vatcode" 'vatcode
.Cells(j, "C") = "'" & codes_salariés(nom_prénom) 'code salarié
.Cells(j, "D") = lib_rubrique 'rubrique congé
.Cells(j, "E") = date_début 'date_début
.Cells(j, "F") = date_fin 'date_fin
.Cells(j, "G") = plage_début 'plage_début
.Cells(j, "H") = plage_fin 'plage_fin
End With
Return
'..... fin sous-procédure de remplissage de la feuille "nombredetr"
End Sub
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
19 août 2016 à 16:21
19 août 2016 à 16:21
Merci thev
Oui ça m'affiche tout les types de congés. J ai encore 2 soucis
Je me suis peut etre mal exprimée mais le code rubrique et le libelle de la rubrique doivent venir de la feuille rubrique Donc sur mon tableau je dois avoir les codes de la feuille liste_rubrique et le libellé qui va avec qui est ausssi sur la meme feuille dans la colonne B.
Le 2eme c est au niveau de la date de début; je sais pas pourquoi ça me sort le mot "département " dans la colonne date de début
Je mettrai des captures d ecran
MERCI INFINIMENT
Oui ça m'affiche tout les types de congés. J ai encore 2 soucis
Je me suis peut etre mal exprimée mais le code rubrique et le libelle de la rubrique doivent venir de la feuille rubrique Donc sur mon tableau je dois avoir les codes de la feuille liste_rubrique et le libellé qui va avec qui est ausssi sur la meme feuille dans la colonne B.
Le 2eme c est au niveau de la date de début; je sais pas pourquoi ça me sort le mot "département " dans la colonne date de début
Je mettrai des captures d ecran
MERCI INFINIMENT
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
Modifié par thev le 19/08/2016 à 18:01
Modifié par thev le 19/08/2016 à 18:01
Bonsoir,
Pour le premier souci, il suffit de modifier le chargement du dictionnaire des rubriques à partir de la feuille rubrique,
en supposant que les codes couleur correspondent à ceux du planning et qu'ils se trouvent dans la colonne F de la feuille rubrique.
ci-dessous nouveau code
Pour le 2ème souci, il faudrait voir ce qui se trouve dans les colonnes B et C de la feuille ""Planning_conges.xls".
Pour le premier souci, il suffit de modifier le chargement du dictionnaire des rubriques à partir de la feuille rubrique,
en supposant que les codes couleur correspondent à ceux du planning et qu'ils se trouvent dans la colonne F de la feuille rubrique.
ci-dessous nouveau code
Sub Presentation()
'..... Déclaration variables
Dim dates() ' tableau des dates
Dim rubriques_congé As New Dictionary ' dictionnaire des rubriques de congé
Dim codes_salariés As New Dictionary ' dictionnaire des codes salariés
Dim nom_prénom As String, date_début As String, date_fin As String, plage_début As String, plage_fin As String
Dim c As Integer, colonne_congé As Integer, couleur_congé As Long, couleur_congé_prec As Long
Dim date_début_OK As Boolean
Dim i As Long, j As Long
Dim clé As Variant
Dim rubrique As Range, id_rubrique As String, tab_rubrique() As String, cod_rubrique As String, lib_rubrique As String
'..... initialisation de la feuille "nombredetr"
With Worksheets("nombredetr")
.Cells.Clear
.Columns("A:A").ColumnWidth = 25
.Range("A1").Value = "Nom et Prénom"
.Range("B1").Value = "Code VAT System"
.Range("C1").Value = "Code Salarié"
.Range("D1").Value = "Code Rubrique"
.Range("E1").Value = "Libellé Rubrique"
.Range("F1").Value = "Date de début"
.Range("G1").Value = "Date de Fin"
.Range("H1").Value = "Plage de début"
.Range("I1").Value = "Plage de Fin"
With .Range("A1:H1").Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 6299648
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With .Range("A1:H1").Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
' .HorizontalAlignment = xlCenter
' .Borders.Weight = xlThin
End With
End With
'..... chargement des rubriques congés dans un dictionnaire des rubriques avec pour clé le code couleur
'..... à partir de la feuille "rubrique"
With Worksheets("rubrique")
For Each rubrique In .Columns("F").SpecialCells(xlCellTypeConstants)
clé = rubrique.Interior.Color
If Not rubriques_congé.Exists(clé) Then
'code et libellé rubriques décalés de 4 et 3 colonnes en arrière de la couleur
rubriques_congé.Add Key:=clé, Item:=rubrique.Offset(, -4) & "/" & rubrique.Offset(, -3)
Else
MsgBox " couleur en double pour la rubrique " & rubrique
End If
Next rubrique
End With
'..... chargement du code salarié dans un dictionnaire des codes salariés avec pour clé nom + prénom
'..... à partir de la feuille "détails"
With Worksheets("détails")
With .UsedRange
dern_ligne = .Row + .Rows.Count - 1 '1ère ligne vide (= 1ère ligne utilisée + nombre lignes utilisées) - 1
End With
For i = 2 To dern_ligne
clé = .Cells(i, "A").Value & " " & .Cells(i, "B").Value
If Not codes_salariés.Exists(clé) Then
codes_salariés.Add Key:=clé, Item:=.Cells(i, "C").Value
Else
MsgBox " nom + prénom en double " & clé
End If
Next i
End With
'..... traitement de la feuille "Planning_conges.xls"
With Worksheets("Planning_conges.xls")
Set xl = Application
dates = xl.Transpose(xl.Transpose(.Rows(4).Value)) 'tableau à une dimension des dates de la ligne 4 de la feuille référencée
j = 2 'intialisation indice de de la feuille "nombredetr"
With .UsedRange
dern_ligne = .Row + .Rows.Count - 1 '1ère ligne vide (= 1ère ligne utilisée + nombre lignes utilisées) - 1
dern_colonne = .Column + .Columns.Count - 1 '1ère colonne vide (= 1ère colonne utilisée + nombre colonnes utilisées) - 1
End With
For i = 5 To dern_ligne
nom_prénom = .Cells(i, "A")
'recherche code couleur dans la ligne i de la feuille référencée
date_début_OK = False
colonne_congé = 2
couleur_congé = 0
For c = 2 To dern_colonne
clé = .Cells(i, c).Interior.Color
If rubriques_congé.Exists(clé) Then
couleur_congé = clé
colonne_congé = c
'écriture ligne feuille "nombredetr" si couleur différente
If date_début_OK Then
If couleur_congé <> couleur_congé_prec Then
id_rubrique = rubriques_congé(couleur_congé_prec)
GoSub ecr_ligne_nbtr 'écriture ligne feuille "nombredetr"
j = j + 1 'incrémentation indice de de la feuille "nombredetr"
date_début_OK = False
End If
End If
'initialisation de la date début
If Not date_début_OK Then
couleur_congé_prec = couleur_congé
date_début = dates(c)
plage_début = "jr"
If date_début = Empty Then
date_début = dates(c - 1): If .Cells(i, c - 1).Interior.Color <> couleur_congé Then plage_début = "pm"
Else: If .Cells(i, c + 1).Interior.Color <> couleur_congé Then plage_début = "am"
End If
date_début_OK = True
End If
'remplissage de la date fin
date_fin = dates(c)
plage_fin = "jr"
If date_fin = Empty Then
date_fin = dates(c - 1): If .Cells(i, c - 1).Interior.Color <> couleur_congé Then plage_fin = "pm"
Else: If .Cells(i, c + 1).Interior.Color <> couleur_congé Then plage_fin = "am"
End If
End If
'écriture ligne feuille "nombredetr" si période différente ou dernière colonne traitée
If c <> colonne_congé _
Or c = dern_colonne Then
If date_début_OK Then
id_rubrique = rubriques_congé(couleur_congé)
GoSub ecr_ligne_nbtr 'écriture ligne feuille "nombredetr"
j = j + 1 'incrémentation indice de de la feuille "nombredetr"
date_début_OK = False
End If
End If
Next c
Next i
End With
Exit Sub
'..... sous-procédure de remplissage de la feuille "nombredetr"
ecr_ligne_nbtr:
tab_rubrique = Split(id_rubrique, "/")
cod_rubrique = tab_rubrique(0)
lib_rubrique = tab_rubrique(1)
With Worksheets("nombredetr")
.Cells(j, "A") = nom_prénom 'nom et prénom
.Cells(j, "B") = "vatcode" 'vatcode
.Cells(j, "C") = "'" & codes_salariés(nom_prénom) 'code salarié
.Cells(j, "D") = "'" & cod_rubrique 'code rubrique congé
.Cells(j, "E") = lib_rubrique 'libellé rubrique congé
.Cells(j, "F") = date_début 'date_début
.Cells(j, "G") = date_fin 'date_fin
.Cells(j, "H") = plage_début 'plage_début
.Cells(j, "I") = plage_fin 'plage_fin
End With
Return
'..... fin sous-procédure de remplissage de la feuille "nombredetr"
End Sub
Pour le 2ème souci, il faudrait voir ce qui se trouve dans les colonnes B et C de la feuille ""Planning_conges.xls".
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
Modifié par thev le 19/08/2016 à 20:08
Modifié par thev le 19/08/2016 à 20:08
En fait pour le 2ème souci,
1- contrôler que le dictionnaire des rubriques ne contient pas de couleur blanche et donc modifier le code ci-dessus comme suit :
2- commencer la recherche des couleurs en colonne D et donc modifier le code ci-dessus comme suit
1- contrôler que le dictionnaire des rubriques ne contient pas de couleur blanche et donc modifier le code ci-dessus comme suit :
'..... chargement des rubriques congés dans un dictionnaire des rubriques avec pour clé le code couleur
'..... à partir de la feuille "rubrique"
With Worksheets("rubrique")
For Each rubrique In .Columns("F").SpecialCells(xlCellTypeConstants)
clé = rubrique.Interior.Color
If clé <> "16777215" Then 'pas de couleur blanche
If Not rubriques_congé.Exists(clé) Then
'code et libellé rubriques décalés de 4 et 3 colonnes en arrière de la couleur
rubriques_congé.Add Key:=clé, Item:=rubrique.Offset(, -4) & "/" & rubrique.Offset(, -3)
Else
MsgBox " couleur en double pour la rubrique " & rubrique
End If
End If
Next rubrique
End With
2- commencer la recherche des couleurs en colonne D et donc modifier le code ci-dessus comme suit
For c = 4 To dern_colonne
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
23 août 2016 à 11:34
23 août 2016 à 11:34
ça marche parfaitement bien
Merci beaucoup pour ton aide, tes explications et ton temps :)
Merci beaucoup pour ton aide, tes explications et ton temps :)
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
17 août 2016 à 16:33
17 août 2016 à 16:33
Bonjour,
Je vous proposerai une réponse d'ici demain. Pouvez-vous me confirmer que les dates se trouvent en colonnes D, F, H, J, ... ?
Je vous proposerai une réponse d'ici demain. Pouvez-vous me confirmer que les dates se trouvent en colonnes D, F, H, J, ... ?
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
Modifié par hajars le 17/08/2016 à 17:41
Modifié par hajars le 17/08/2016 à 17:41
Si vous voulez dire les dates des congés, c'est en fait sur la feuille Planning-conges. C est la date où commence les cellules colorés.
Et Mercii d'avance
Et Mercii d'avance
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
19 août 2016 à 16:29
19 août 2016 à 16:29
Voici le capture d ecran ou j ai departement
J ai cherché dans le code ou est ce qu il peut y avoir le probleme mais j ai pas reussi a trouver

Voici tableau que j aimerais avoir. c est le resultat que j avais avec seulement les congés payés

Pour la feuille planning conges et la feuille rubrique je sais qu'il y a un peu incomptaibilité au niveau des codes mais ca va se regler
Merci beaucouuuuuup
J ai cherché dans le code ou est ce qu il peut y avoir le probleme mais j ai pas reussi a trouver

Voici tableau que j aimerais avoir. c est le resultat que j avais avec seulement les congés payés

Pour la feuille planning conges et la feuille rubrique je sais qu'il y a un peu incomptaibilité au niveau des codes mais ca va se regler
Merci beaucouuuuuup
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
1 sept. 2016 à 19:03
1 sept. 2016 à 19:03
Je reviens à cette discussion j aurai besoin de changer un ptit detail.
En fait je veux recuperer les codes par les noms que j'ai sur le fichier plutot que les couleurs j ai changé .Font.Color par .value dans le code mais ça me sort plus rien.
Est ce que tu pourrras stp m'aider ou me dir epourquoi quand je change à .Value ça marche et qu est ce que je dois changer
Merco et desolee d etre revenue vers toi encore une fois
En fait je veux recuperer les codes par les noms que j'ai sur le fichier plutot que les couleurs j ai changé .Font.Color par .value dans le code mais ça me sort plus rien.
Est ce que tu pourrras stp m'aider ou me dir epourquoi quand je change à .Value ça marche et qu est ce que je dois changer
Merco et desolee d etre revenue vers toi encore une fois
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
1 sept. 2016 à 22:47
1 sept. 2016 à 22:47
Le mieux serait que tu me communiques un fichier avec le code modifié car je suppose que la feuille planning a évolué.
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
1 sept. 2016 à 23:05
1 sept. 2016 à 23:05
http://www.cjoint.com/c/FIbvcEStXec
Voila le fichier ci joint
Rien n'a changé. Je veux juste recuperer les codes de planning_conges par leur valeur et non pas leur couleur parce que la couleur pose un probleme quand on cange d'ordi
Voila le fichier ci joint
Rien n'a changé. Je veux juste recuperer les codes de planning_conges par leur valeur et non pas leur couleur parce que la couleur pose un probleme quand on cange d'ordi
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
2 sept. 2016 à 10:07
2 sept. 2016 à 10:07
ci-joint module rectifié placé en module 1
https://www.cjoint.com/c/FIcigdDSHh0
https://www.cjoint.com/c/FIcigdDSHh0
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
9 sept. 2016 à 02:08
9 sept. 2016 à 02:08
Desolee pour le retard et merci bcp pr ta reponse mais ils me donnent message d erreur pr le code
le message est compile error. Incalid use of new keyword
et c est sur cette ligne qui est dans la 1ere partie des déclarations
Dim rubriques_conge As New Dictionary ' dictionnaire des rubriques de congé
le message est compile error. Incalid use of new keyword
et c est sur cette ligne qui est dans la 1ere partie des déclarations
Dim rubriques_conge As New Dictionary ' dictionnaire des rubriques de congé
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
Modifié par thev le 9/09/2016 à 10:05
Modifié par thev le 9/09/2016 à 10:05
2 solutions :
1- soit ajouter dans l'éditeur VBA la référence "Microsoft Scripting Runtime'"
2- soit modifier
1- soit ajouter dans l'éditeur VBA la référence "Microsoft Scripting Runtime'"
2- soit modifier
par
Dim rubriques_congé As New Dictionary ' dictionnaire des rubriques de congé
Dim codes_salariés As New Dictionary ' dictionnaire des codes salariés
Set rubriques_congé = CreateObject("Scripting.Dictionary") ' dictionnaire des rubriques de congé
Set codes_salariés = CreateObject("Scripting.Dictionary") ' dictionnaire des codes salariés
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
9 sept. 2016 à 16:03
9 sept. 2016 à 16:03
J'ai opté pour la 2eme solution parce que je travaille mnt sur un mac et j arrive pas a ajouter la reference.
Quand j ai changé le code j ai mnt erreur: compile error: Method or Data member not found sur la ligne 3 de clé=rubrique.Value
With Worksheets("rubrique")
For Each rubrique In .Columns("E").SpecialCells(xlCellTypeConstants)
clé = rubrique.Value
Quand j ai changé le code j ai mnt erreur: compile error: Method or Data member not found sur la ligne 3 de clé=rubrique.Value
With Worksheets("rubrique")
For Each rubrique In .Columns("E").SpecialCells(xlCellTypeConstants)
clé = rubrique.Value
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
>
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
9 sept. 2016 à 21:04
9 sept. 2016 à 21:04
Essayer de changer la définition de la variable rubrique
Dim rubrique As Objectou
Dim rubrique As Variant
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
Modifié par thev le 12/09/2016 à 19:20
Modifié par thev le 12/09/2016 à 19:20
As_tu essayé
A quelle ligne se produit l'erreur ?
Dim rubrique As Variant?
A quelle ligne se produit l'erreur ?
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
14 sept. 2016 à 00:22
14 sept. 2016 à 00:22
oui
J a essayé les deux et ça me donne erreur 429 sur cette ligne
Set rubriques_congé = CreateObject("Scripting.Dictionary") ' dictionnaire des rubriques de congé
J a essayé les deux et ça me donne erreur 429 sur cette ligne
Set rubriques_congé = CreateObject("Scripting.Dictionary") ' dictionnaire des rubriques de congé
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
14 sept. 2016 à 00:29
14 sept. 2016 à 00:29
https://www.cjoint.com/c/FInwCudIqTc
Voici le lien du le fichier avec les modifications que vous m'avez dit comme ça vous pourrez voir l'erreur
Voici le lien du le fichier avec les modifications que vous m'avez dit comme ça vous pourrez voir l'erreur
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
14 sept. 2016 à 12:06
14 sept. 2016 à 12:06
Le problème est que sous Mac, la bibliothèque contenant l'objet "Scripting.Dictionary" n'est pas disponible.
Il faut donc revoir le code en utilisant l'objet "Collection" qui est standard pour toutes les versions de Microsoft Office. Je vous communique donc une nouvelle version d'ici demain.
Il faut donc revoir le code en utilisant l'objet "Collection" qui est standard pour toutes les versions de Microsoft Office. Je vous communique donc une nouvelle version d'ici demain.
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
14 sept. 2016 à 13:23
14 sept. 2016 à 13:23
ci-joint nouvelle version avec l'objet "Collection" en lieu et place de l'objet "Scripting.Dictionary"
https://www.cjoint.com/c/FIolvs453Eq
https://www.cjoint.com/c/FIolvs453Eq
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
20 sept. 2016 à 00:39
20 sept. 2016 à 00:39
ouiiii c est exactemet ce que je devais avoir :) :) :)
Meerci beaucoup.
Derniere chose: Je veux que le tableau soit importé en fichier csv avec tous les champs separés par des ;
j ai fait ce code mais ca marche sur mon mac mais pas sur les autres ordis.Est ce que t as une idee sur ça
Voila le code
Et merci encore et encore et encore et encore beaucouuuuuuuuup
Meerci beaucoup.
Derniere chose: Je veux que le tableau soit importé en fichier csv avec tous les champs separés par des ;
j ai fait ce code mais ca marche sur mon mac mais pas sur les autres ordis.Est ce que t as une idee sur ça
Voila le code
Sub SaveAsCSV()
'steve, mpfe
Dim Range As Object, Line As Object, Cell As Object
Dim StrTemp As String
Dim Separateur As String
Separateur = ";"
Set Range = ActiveSheet.UsedRange
Open "Test.csv" For Output As #1
For Each Line In Range.Rows
StrTemp = ""
For Each Cell In Line.Cells
StrTemp = StrTemp & CStr(Cell.Text) & Separateur
Next
Print #1, StrTemp '= " "
Next
Close
End Sub
Et merci encore et encore et encore et encore beaucouuuuuuuuup
thev
Messages postés
1962
Date d'inscription
lundi 7 avril 2008
Statut
Membre
Dernière intervention
18 février 2025
705
>
hajars
Messages postés
32
Date d'inscription
mardi 26 juillet 2016
Statut
Membre
Dernière intervention
20 septembre 2016
20 sept. 2016 à 09:08
20 sept. 2016 à 09:08
Bonjour,
Ne pas utiliser "Range" comme nom de variable car c'est un mot clé réservé. Utilise plutôt le mot français "plage" à la place.
Il en est de même pour "line". Utilise plutôt "ligne".
Ne pas utiliser "Range" comme nom de variable car c'est un mot clé réservé. Utilise plutôt le mot français "plage" à la place.
Il en est de même pour "line". Utilise plutôt "ligne".