christophedb
XLDnaute Nouveau
bonjour,
J'espère que vous pourrez m'aider,
j'ai un soucis sur l'exportation de certaines données d'une feuille
que je dois trier et ranger dans des cellules bien spécifique dans une autre feuille .
En fonction de données finales d'une colonne (G feuille 1)
j'aimerais rapatrier les différents poste occupés trié du plus petit numéro vers le plus grand (C feuille 1) dans la feuille 2 au poste correspondant indiqué. En récupérant pour chaque poste, le nom, prénom et n° ( doublons autorisé )
j'aimerais pouvoir créer une sous routine que je devrai inclure plus tard dans un userform.
cela devrait au mieux être automatique a chaque ouverture du classeur.
Je n'ai pas assez d'expérience en VB que pour créer le code.
la base de données finale que je dois trier comporte 210 personnes max et 29 postes différents
les personnes peuvent changer de poste et/ou être supprimée
j'ai essayé ce code qui fonctionne en partie,
il copie bien les cellules dans une autre feuille mais pas là ou je veux.
je crois que le problème vient de :
PLV.Copy
Set O2 = Sheets("feuil3")
Set DEST = O2.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
DEST.PasteSpecial Paste:=xlValues, Transpose:=False
End Sub
Si je comprends bien, il copie la sélection faite en feuill3 cel A1,
j'aimerais comprendre comment faire pour moi même sélectionner les cellules ou je veux qu'il copie
Sinon dans la BD d'exemple la sélection se fait sur 3 colonnes adjacentes,
comment modifier le code pour sélectionner les colonnes voulues uniquement ??
voiçi le code et l'exemple
j'ai mis la procedure en ouverture du classeur dans 'thisWorkbook'
le code renvoie la selection sur la feuille 3 mais c'est bien les destination en feuille 2 que j'aimerais contrôler ....
Sinon je ne sais pas comment faire pour répéter la même opération sans alourdir le code pour mes 29 postes et je n'arrive pas a filtrer les cellules copiées de la plus petite à la plus grande ( n° ) dans la feuille de destination ...
Quelqu'un aurait une idée ?
J'espère que vous pourrez m'aider,
j'ai un soucis sur l'exportation de certaines données d'une feuille
que je dois trier et ranger dans des cellules bien spécifique dans une autre feuille .
En fonction de données finales d'une colonne (G feuille 1)
j'aimerais rapatrier les différents poste occupés trié du plus petit numéro vers le plus grand (C feuille 1) dans la feuille 2 au poste correspondant indiqué. En récupérant pour chaque poste, le nom, prénom et n° ( doublons autorisé )
j'aimerais pouvoir créer une sous routine que je devrai inclure plus tard dans un userform.
cela devrait au mieux être automatique a chaque ouverture du classeur.
Je n'ai pas assez d'expérience en VB que pour créer le code.
la base de données finale que je dois trier comporte 210 personnes max et 29 postes différents
les personnes peuvent changer de poste et/ou être supprimée
j'ai essayé ce code qui fonctionne en partie,
il copie bien les cellules dans une autre feuille mais pas là ou je veux.
je crois que le problème vient de :
PLV.Copy
Set O2 = Sheets("feuil3")
Set DEST = O2.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
DEST.PasteSpecial Paste:=xlValues, Transpose:=False
End Sub
Si je comprends bien, il copie la sélection faite en feuill3 cel A1,
j'aimerais comprendre comment faire pour moi même sélectionner les cellules ou je veux qu'il copie
Sinon dans la BD d'exemple la sélection se fait sur 3 colonnes adjacentes,
comment modifier le code pour sélectionner les colonnes voulues uniquement ??
voiçi le code et l'exemple
j'ai mis la procedure en ouverture du classeur dans 'thisWorkbook'
Code:
Option Explicit
Private Sub Workbook_Open()
Dim O1 As Object
Dim O2 As Object
Dim PL As Range
Dim PLV As Range
Dim DEST As Range
Set O1 = Sheets("Feuil1")
Set PL = O1.Range("A2:C" & O1.Cells(Application.Rows.Count, 1).End(xlUp).Row)
O1.Range("A1").AutoFilter Field:=7, Criteria1:="bureau 1"
On Error Resume Next
Set PLV = PL.SpecialCells(xlCellTypeVisible)
If Err <> 0 Then
Err.Clear
O1.Range("A1").AutoFilter
MsgBox "Aucune donnée filtrée !"
Exit Sub
End If
On Error GoTo 0
PLV.Copy
Set O2 = Sheets("feuil3")
Set DEST = O2.Cells(Application.Rows.Count, 1).End(xlUp).Offset(1, 0)
DEST.PasteSpecial Paste:=xlValues, Transpose:=False
End Sub
le code renvoie la selection sur la feuille 3 mais c'est bien les destination en feuille 2 que j'aimerais contrôler ....
Sinon je ne sais pas comment faire pour répéter la même opération sans alourdir le code pour mes 29 postes et je n'arrive pas a filtrer les cellules copiées de la plus petite à la plus grande ( n° ) dans la feuille de destination ...
Quelqu'un aurait une idée ?
Pièces jointes
Dernière édition: