Bonjour à tous.
j'ai un petit soucis d'adaptation.
Voilà, j'avais réussi à faire fonctionner un code que voici :
------ (dans un module)
'1. Création de la liste CONGES PAYES
Sub CreationListeA()
Dim Ligne As Integer
Ligne = 1
On Error Resume Next
Sheets("Confrontation CP").Activate
If Err <> 0 Then
Sheets.Add
ActiveSheet.Name = "Confrontation CP"
Sheets("CP 05-06").Select
For i = 0 To 300 Step 20
Range("C5").Offset(i, 0).Copy Sheets("Confrontation
CP").Range("A" & Ligne)
Ligne = Ligne + 1
Next i
End If
On Error GoTo 0
End Sub
'3. Module Routine CONGES PAYES
Sub RoutineA(Var)
Sheets("CP 05-06").Select
Range("B" & Var & ":O" & Var + 50).Copy
Sheets("Confrontation CP").Select
If [A1] = 0 Then
[A1] = 1
Range("C5").Select
Else
[A1] = 0
Range("R5").Select
End If
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'ActiveSheet.Paste
End Sub
--------(dans la page concernée)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Var
If Intersect(Target, Range("A2:A17")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Var = Application.Match(Target.Value, Sheets("CP 05-06").Range("C:C"), 0)
RoutineA Var
Application.EnableEvents = True
End Sub
---------
Alors j'explique.
Sur un epage "CP 05-06", j'ai 19 tableaux qui se succèdent. Chacun possède
12 colonnes et 37 lignes utiles. (les 12 mois de l'année)
Ces tableaux sont séparés entre eux de 5 lignes.
Je voudrais une macro qui me permette d'afficher dans un tableau, le mois de
Juin par exemple, avec mes 19 salariés, côte à côte (c'est-à-dire, que le
tableau ferait 19 colonnes par 37 lignes).
Donc comment créer une macro pour récupérer ces données?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Pounet95
Bonjour, Il y a peut-être plus simple voir du côté de l'utilisation d'un TCD ???
Dans une feuille Excel : nommer chacun des tableaux Employé ( par son nom par exemple ) créer une liste des Employés et la nommer aussi
Ici 2 employés Albert et Jules liste employés nommée MesEmployés dans la cellule P3 de la feuille, j'ai mis la liste des numéros de mois ( données/validation liste 1;2......12
recopier le code ci-dessous dans le module évènement de la feuille
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) Dim LeMois As Integer Dim cel As Range Dim datas As Range Dim col As Integer
'Est-ce bien la cellule P3 qui a changé ? If Target = [P3] Then 'efface la zone de réception en ayant bloqué les évènements Application.EnableEvents = False Range("Q1:BZ6").Clear col = 17
LeMois = Target For Each cel In Range("MesEmployés") 'se positionne pour le 1er employé en Q1 Cells(1, col).Select 'copie les données de l'employé dans le tableau de réception Set datas = Application.Intersect(Range(cel), Columns(LeMois)) datas.Copy 'employé en en-tête de colonne ActiveCell = cel 'ses données en dessous 2 cellules plus bas ActiveCell.Offset(2, 0).PasteSpecial xlPasteAll 'pour le suivant col = col + 1 Next End If 'on n'oublie pas de remettre les évènements !!!! Evenements End Sub
Sub Evenements() Application.EnableEvents = True End Sub
A adapter au besoin bien sûr ! Bon courage
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"Sunburn" a écrit dans le message de news:
Bonjour à tous. j'ai un petit soucis d'adaptation. Voilà, j'avais réussi à faire fonctionner un code que voici : ------ (dans un module) '1. Création de la liste CONGES PAYES Sub CreationListeA() Dim Ligne As Integer Ligne = 1 On Error Resume Next Sheets("Confrontation CP").Activate If Err <> 0 Then Sheets.Add ActiveSheet.Name = "Confrontation CP" Sheets("CP 05-06").Select For i = 0 To 300 Step 20 Range("C5").Offset(i, 0).Copy Sheets("Confrontation CP").Range("A" & Ligne) Ligne = Ligne + 1 Next i End If On Error GoTo 0 End Sub
'3. Module Routine CONGES PAYES Sub RoutineA(Var) Sheets("CP 05-06").Select Range("B" & Var & ":O" & Var + 50).Copy Sheets("Confrontation CP").Select If [A1] = 0 Then [A1] = 1 Range("C5").Select Else [A1] = 0 Range("R5").Select End If Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse 'ActiveSheet.Paste End Sub --------(dans la page concernée) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Var If Intersect(Target, Range("A2:A17")) Is Nothing Then Exit Sub Application.EnableEvents = False Var = Application.Match(Target.Value, Sheets("CP 05-06").Range("C:C"), 0) RoutineA Var Application.EnableEvents = True End Sub ---------
Alors j'explique. Sur un epage "CP 05-06", j'ai 19 tableaux qui se succèdent. Chacun possède 12 colonnes et 37 lignes utiles. (les 12 mois de l'année) Ces tableaux sont séparés entre eux de 5 lignes.
Je voudrais une macro qui me permette d'afficher dans un tableau, le mois de Juin par exemple, avec mes 19 salariés, côte à côte (c'est-à-dire, que le tableau ferait 19 colonnes par 37 lignes).
Donc comment créer une macro pour récupérer ces données?
Je vous remercie précieusement. Yann
Bonjour,
Il y a peut-être plus simple voir du côté de l'utilisation d'un TCD ???
Dans une feuille Excel :
nommer chacun des tableaux Employé ( par son nom par exemple )
créer une liste des Employés et la nommer aussi
Ici 2 employés Albert et Jules
liste employés nommée MesEmployés
dans la cellule P3 de la feuille, j'ai mis la liste des numéros de mois
( données/validation liste 1;2......12
recopier le code ci-dessous dans le module évènement de la feuille
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LeMois As Integer
Dim cel As Range
Dim datas As Range
Dim col As Integer
'Est-ce bien la cellule P3 qui a changé ?
If Target = [P3] Then
'efface la zone de réception en ayant bloqué les évènements
Application.EnableEvents = False
Range("Q1:BZ6").Clear
col = 17
LeMois = Target
For Each cel In Range("MesEmployés")
'se positionne pour le 1er employé en Q1
Cells(1, col).Select
'copie les données de l'employé dans le tableau de réception
Set datas = Application.Intersect(Range(cel), Columns(LeMois))
datas.Copy
'employé en en-tête de colonne
ActiveCell = cel
'ses données en dessous 2 cellules plus bas
ActiveCell.Offset(2, 0).PasteSpecial xlPasteAll
'pour le suivant
col = col + 1
Next
End If
'on n'oublie pas de remettre les évènements !!!!
Evenements
End Sub
Sub Evenements()
Application.EnableEvents = True
End Sub
A adapter au besoin bien sûr !
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news: 0C201E79-056B-4309-B915-0464562DF882@microsoft.com...
Bonjour à tous.
j'ai un petit soucis d'adaptation.
Voilà, j'avais réussi à faire fonctionner un code que voici :
------ (dans un module)
'1. Création de la liste CONGES PAYES
Sub CreationListeA()
Dim Ligne As Integer
Ligne = 1
On Error Resume Next
Sheets("Confrontation CP").Activate
If Err <> 0 Then
Sheets.Add
ActiveSheet.Name = "Confrontation CP"
Sheets("CP 05-06").Select
For i = 0 To 300 Step 20
Range("C5").Offset(i, 0).Copy Sheets("Confrontation
CP").Range("A" & Ligne)
Ligne = Ligne + 1
Next i
End If
On Error GoTo 0
End Sub
'3. Module Routine CONGES PAYES
Sub RoutineA(Var)
Sheets("CP 05-06").Select
Range("B" & Var & ":O" & Var + 50).Copy
Sheets("Confrontation CP").Select
If [A1] = 0 Then
[A1] = 1
Range("C5").Select
Else
[A1] = 0
Range("R5").Select
End If
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=
_
False, Transpose:úlse
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
'ActiveSheet.Paste
End Sub
--------(dans la page concernée)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Var
If Intersect(Target, Range("A2:A17")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Var = Application.Match(Target.Value, Sheets("CP 05-06").Range("C:C"),
0)
RoutineA Var
Application.EnableEvents = True
End Sub
---------
Alors j'explique.
Sur un epage "CP 05-06", j'ai 19 tableaux qui se succèdent. Chacun possède
12 colonnes et 37 lignes utiles. (les 12 mois de l'année)
Ces tableaux sont séparés entre eux de 5 lignes.
Je voudrais une macro qui me permette d'afficher dans un tableau, le mois
de
Juin par exemple, avec mes 19 salariés, côte à côte (c'est-à-dire, que le
tableau ferait 19 colonnes par 37 lignes).
Donc comment créer une macro pour récupérer ces données?
Bonjour, Il y a peut-être plus simple voir du côté de l'utilisation d'un TCD ???
Dans une feuille Excel : nommer chacun des tableaux Employé ( par son nom par exemple ) créer une liste des Employés et la nommer aussi
Ici 2 employés Albert et Jules liste employés nommée MesEmployés dans la cellule P3 de la feuille, j'ai mis la liste des numéros de mois ( données/validation liste 1;2......12
recopier le code ci-dessous dans le module évènement de la feuille
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) Dim LeMois As Integer Dim cel As Range Dim datas As Range Dim col As Integer
'Est-ce bien la cellule P3 qui a changé ? If Target = [P3] Then 'efface la zone de réception en ayant bloqué les évènements Application.EnableEvents = False Range("Q1:BZ6").Clear col = 17
LeMois = Target For Each cel In Range("MesEmployés") 'se positionne pour le 1er employé en Q1 Cells(1, col).Select 'copie les données de l'employé dans le tableau de réception Set datas = Application.Intersect(Range(cel), Columns(LeMois)) datas.Copy 'employé en en-tête de colonne ActiveCell = cel 'ses données en dessous 2 cellules plus bas ActiveCell.Offset(2, 0).PasteSpecial xlPasteAll 'pour le suivant col = col + 1 Next End If 'on n'oublie pas de remettre les évènements !!!! Evenements End Sub
Sub Evenements() Application.EnableEvents = True End Sub
A adapter au besoin bien sûr ! Bon courage
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"Sunburn" a écrit dans le message de news:
Bonjour à tous. j'ai un petit soucis d'adaptation. Voilà, j'avais réussi à faire fonctionner un code que voici : ------ (dans un module) '1. Création de la liste CONGES PAYES Sub CreationListeA() Dim Ligne As Integer Ligne = 1 On Error Resume Next Sheets("Confrontation CP").Activate If Err <> 0 Then Sheets.Add ActiveSheet.Name = "Confrontation CP" Sheets("CP 05-06").Select For i = 0 To 300 Step 20 Range("C5").Offset(i, 0).Copy Sheets("Confrontation CP").Range("A" & Ligne) Ligne = Ligne + 1 Next i End If On Error GoTo 0 End Sub
'3. Module Routine CONGES PAYES Sub RoutineA(Var) Sheets("CP 05-06").Select Range("B" & Var & ":O" & Var + 50).Copy Sheets("Confrontation CP").Select If [A1] = 0 Then [A1] = 1 Range("C5").Select Else [A1] = 0 Range("R5").Select End If Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse 'ActiveSheet.Paste End Sub --------(dans la page concernée) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Var If Intersect(Target, Range("A2:A17")) Is Nothing Then Exit Sub Application.EnableEvents = False Var = Application.Match(Target.Value, Sheets("CP 05-06").Range("C:C"), 0) RoutineA Var Application.EnableEvents = True End Sub ---------
Alors j'explique. Sur un epage "CP 05-06", j'ai 19 tableaux qui se succèdent. Chacun possède 12 colonnes et 37 lignes utiles. (les 12 mois de l'année) Ces tableaux sont séparés entre eux de 5 lignes.
Je voudrais une macro qui me permette d'afficher dans un tableau, le mois de Juin par exemple, avec mes 19 salariés, côte à côte (c'est-à-dire, que le tableau ferait 19 colonnes par 37 lignes).
Donc comment créer une macro pour récupérer ces données?
Je vous remercie précieusement. Yann
Sunburn
Merci.
je vais essayer d'adapter, ça m'a l'air faisable. Merci. YANN
Bonjour, Il y a peut-être plus simple voir du côté de l'utilisation d'un TCD ???
Dans une feuille Excel : nommer chacun des tableaux Employé ( par son nom par exemple ) créer une liste des Employés et la nommer aussi
Ici 2 employés Albert et Jules liste employés nommée MesEmployés dans la cellule P3 de la feuille, j'ai mis la liste des numéros de mois ( données/validation liste 1;2......12
recopier le code ci-dessous dans le module évènement de la feuille
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) Dim LeMois As Integer Dim cel As Range Dim datas As Range Dim col As Integer
'Est-ce bien la cellule P3 qui a changé ? If Target = [P3] Then 'efface la zone de réception en ayant bloqué les évènements Application.EnableEvents = False Range("Q1:BZ6").Clear col = 17
LeMois = Target For Each cel In Range("MesEmployés") 'se positionne pour le 1er employé en Q1 Cells(1, col).Select 'copie les données de l'employé dans le tableau de réception Set datas = Application.Intersect(Range(cel), Columns(LeMois)) datas.Copy 'employé en en-tête de colonne ActiveCell = cel 'ses données en dessous 2 cellules plus bas ActiveCell.Offset(2, 0).PasteSpecial xlPasteAll 'pour le suivant col = col + 1 Next End If 'on n'oublie pas de remettre les évènements !!!! Evenements End Sub
Sub Evenements() Application.EnableEvents = True End Sub
A adapter au besoin bien sûr ! Bon courage
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"Sunburn" a écrit dans le message de news:
Bonjour à tous. j'ai un petit soucis d'adaptation. Voilà, j'avais réussi à faire fonctionner un code que voici : ------ (dans un module) '1. Création de la liste CONGES PAYES Sub CreationListeA() Dim Ligne As Integer Ligne = 1 On Error Resume Next Sheets("Confrontation CP").Activate If Err <> 0 Then Sheets.Add ActiveSheet.Name = "Confrontation CP" Sheets("CP 05-06").Select For i = 0 To 300 Step 20 Range("C5").Offset(i, 0).Copy Sheets("Confrontation CP").Range("A" & Ligne) Ligne = Ligne + 1 Next i End If On Error GoTo 0 End Sub
'3. Module Routine CONGES PAYES Sub RoutineA(Var) Sheets("CP 05-06").Select Range("B" & Var & ":O" & Var + 50).Copy Sheets("Confrontation CP").Select If [A1] = 0 Then [A1] = 1 Range("C5").Select Else [A1] = 0 Range("R5").Select End If Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse 'ActiveSheet.Paste End Sub --------(dans la page concernée) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Var If Intersect(Target, Range("A2:A17")) Is Nothing Then Exit Sub Application.EnableEvents = False Var = Application.Match(Target.Value, Sheets("CP 05-06").Range("C:C"), 0) RoutineA Var Application.EnableEvents = True End Sub ---------
Alors j'explique. Sur un epage "CP 05-06", j'ai 19 tableaux qui se succèdent. Chacun possède 12 colonnes et 37 lignes utiles. (les 12 mois de l'année) Ces tableaux sont séparés entre eux de 5 lignes.
Je voudrais une macro qui me permette d'afficher dans un tableau, le mois de Juin par exemple, avec mes 19 salariés, côte à côte (c'est-à-dire, que le tableau ferait 19 colonnes par 37 lignes).
Donc comment créer une macro pour récupérer ces données?
Je vous remercie précieusement. Yann
Merci.
je vais essayer d'adapter, ça m'a l'air faisable.
Merci.
YANN
Bonjour,
Il y a peut-être plus simple voir du côté de l'utilisation d'un TCD ???
Dans une feuille Excel :
nommer chacun des tableaux Employé ( par son nom par exemple )
créer une liste des Employés et la nommer aussi
Ici 2 employés Albert et Jules
liste employés nommée MesEmployés
dans la cellule P3 de la feuille, j'ai mis la liste des numéros de mois
( données/validation liste 1;2......12
recopier le code ci-dessous dans le module évènement de la feuille
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim LeMois As Integer
Dim cel As Range
Dim datas As Range
Dim col As Integer
'Est-ce bien la cellule P3 qui a changé ?
If Target = [P3] Then
'efface la zone de réception en ayant bloqué les évènements
Application.EnableEvents = False
Range("Q1:BZ6").Clear
col = 17
LeMois = Target
For Each cel In Range("MesEmployés")
'se positionne pour le 1er employé en Q1
Cells(1, col).Select
'copie les données de l'employé dans le tableau de réception
Set datas = Application.Intersect(Range(cel), Columns(LeMois))
datas.Copy
'employé en en-tête de colonne
ActiveCell = cel
'ses données en dessous 2 cellules plus bas
ActiveCell.Offset(2, 0).PasteSpecial xlPasteAll
'pour le suivant
col = col + 1
Next
End If
'on n'oublie pas de remettre les évènements !!!!
Evenements
End Sub
Sub Evenements()
Application.EnableEvents = True
End Sub
A adapter au besoin bien sûr !
Bon courage
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"Sunburn" <Sunburn@discussions.microsoft.com> a écrit dans le message de
news: 0C201E79-056B-4309-B915-0464562DF882@microsoft.com...
Bonjour à tous.
j'ai un petit soucis d'adaptation.
Voilà, j'avais réussi à faire fonctionner un code que voici :
------ (dans un module)
'1. Création de la liste CONGES PAYES
Sub CreationListeA()
Dim Ligne As Integer
Ligne = 1
On Error Resume Next
Sheets("Confrontation CP").Activate
If Err <> 0 Then
Sheets.Add
ActiveSheet.Name = "Confrontation CP"
Sheets("CP 05-06").Select
For i = 0 To 300 Step 20
Range("C5").Offset(i, 0).Copy Sheets("Confrontation
CP").Range("A" & Ligne)
Ligne = Ligne + 1
Next i
End If
On Error GoTo 0
End Sub
'3. Module Routine CONGES PAYES
Sub RoutineA(Var)
Sheets("CP 05-06").Select
Range("B" & Var & ":O" & Var + 50).Copy
Sheets("Confrontation CP").Select
If [A1] = 0 Then
[A1] = 1
Range("C5").Select
Else
[A1] = 0
Range("R5").Select
End If
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=
_
False, Transpose:úlse
Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone,
SkipBlanks:= _
False, Transpose:úlse
'ActiveSheet.Paste
End Sub
--------(dans la page concernée)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Var
If Intersect(Target, Range("A2:A17")) Is Nothing Then Exit Sub
Application.EnableEvents = False
Var = Application.Match(Target.Value, Sheets("CP 05-06").Range("C:C"),
0)
RoutineA Var
Application.EnableEvents = True
End Sub
---------
Alors j'explique.
Sur un epage "CP 05-06", j'ai 19 tableaux qui se succèdent. Chacun possède
12 colonnes et 37 lignes utiles. (les 12 mois de l'année)
Ces tableaux sont séparés entre eux de 5 lignes.
Je voudrais une macro qui me permette d'afficher dans un tableau, le mois
de
Juin par exemple, avec mes 19 salariés, côte à côte (c'est-à-dire, que le
tableau ferait 19 colonnes par 37 lignes).
Donc comment créer une macro pour récupérer ces données?
je vais essayer d'adapter, ça m'a l'air faisable. Merci. YANN
Bonjour, Il y a peut-être plus simple voir du côté de l'utilisation d'un TCD ???
Dans une feuille Excel : nommer chacun des tableaux Employé ( par son nom par exemple ) créer une liste des Employés et la nommer aussi
Ici 2 employés Albert et Jules liste employés nommée MesEmployés dans la cellule P3 de la feuille, j'ai mis la liste des numéros de mois ( données/validation liste 1;2......12
recopier le code ci-dessous dans le module évènement de la feuille
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range) Dim LeMois As Integer Dim cel As Range Dim datas As Range Dim col As Integer
'Est-ce bien la cellule P3 qui a changé ? If Target = [P3] Then 'efface la zone de réception en ayant bloqué les évènements Application.EnableEvents = False Range("Q1:BZ6").Clear col = 17
LeMois = Target For Each cel In Range("MesEmployés") 'se positionne pour le 1er employé en Q1 Cells(1, col).Select 'copie les données de l'employé dans le tableau de réception Set datas = Application.Intersect(Range(cel), Columns(LeMois)) datas.Copy 'employé en en-tête de colonne ActiveCell = cel 'ses données en dessous 2 cellules plus bas ActiveCell.Offset(2, 0).PasteSpecial xlPasteAll 'pour le suivant col = col + 1 Next End If 'on n'oublie pas de remettre les évènements !!!! Evenements End Sub
Sub Evenements() Application.EnableEvents = True End Sub
A adapter au besoin bien sûr ! Bon courage
-- Pounet95 on trouve tout ( ou presque ) http://www.excelabo.net/ Conseillé : http://dj.joss.free.fr/netiquet.htm (charte, nétiquette, conseils, abréviations, souriettes...) http://www.excelabo.net/mpfe/connexion.php (connexion, conseils...)
"Sunburn" a écrit dans le message de news:
Bonjour à tous. j'ai un petit soucis d'adaptation. Voilà, j'avais réussi à faire fonctionner un code que voici : ------ (dans un module) '1. Création de la liste CONGES PAYES Sub CreationListeA() Dim Ligne As Integer Ligne = 1 On Error Resume Next Sheets("Confrontation CP").Activate If Err <> 0 Then Sheets.Add ActiveSheet.Name = "Confrontation CP" Sheets("CP 05-06").Select For i = 0 To 300 Step 20 Range("C5").Offset(i, 0).Copy Sheets("Confrontation CP").Range("A" & Ligne) Ligne = Ligne + 1 Next i End If On Error GoTo 0 End Sub
'3. Module Routine CONGES PAYES Sub RoutineA(Var) Sheets("CP 05-06").Select Range("B" & Var & ":O" & Var + 50).Copy Sheets("Confrontation CP").Select If [A1] = 0 Then [A1] = 1 Range("C5").Select Else [A1] = 0 Range("R5").Select End If Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _ False, Transpose:úlse 'ActiveSheet.Paste End Sub --------(dans la page concernée) Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim Var If Intersect(Target, Range("A2:A17")) Is Nothing Then Exit Sub Application.EnableEvents = False Var = Application.Match(Target.Value, Sheets("CP 05-06").Range("C:C"), 0) RoutineA Var Application.EnableEvents = True End Sub ---------
Alors j'explique. Sur un epage "CP 05-06", j'ai 19 tableaux qui se succèdent. Chacun possède 12 colonnes et 37 lignes utiles. (les 12 mois de l'année) Ces tableaux sont séparés entre eux de 5 lignes.
Je voudrais une macro qui me permette d'afficher dans un tableau, le mois de Juin par exemple, avec mes 19 salariés, côte à côte (c'est-à-dire, que le tableau ferait 19 colonnes par 37 lignes).
Donc comment créer une macro pour récupérer ces données?