copier colonne vers une autre feuille

kingjon

XLDnaute Nouveau
Bonjour à tous, je suis bloqué dans la réalisation de mon projet, j'aimerais obtenir de l'aide...
J'ai un nombre x qui varie selon un chiffre, de colonne, ainsi chaque colonne est composer de nom.
J'aimerais que pour chaque colonne composer de lignes avec des noms, qu'elle soit envoyer vers une nouvelle feuille.
en gros créer une feuille pour chaque colonne ainsi que ces valeurs, est ce possible ?
Merci de votre aide
Jonas
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier colonne vers une autre feuille

Bonjour Jonas, bonjour le forum,

Essaie comme ça :

Code:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)

Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 2) 'boule sur toutes les colonnes I du tableau des valeurs TV
    Sheets.Add after:=Sheets(Sheets.Count) 'ajoute un onglet a la fin
    ActiveSheet.Name = "Colonne " & I 'renomme l'onglet
    'renvoie dans la cellule A1 de l'onglet la colonne correspondante du tableau des valeurs TV
    ActiveSheet.Range("A1").Resize(UBound(TV, 2), 1).Value = Application.Transpose(Application.Index(TV, , I))
Next I 'prochaine colonne de la boucle
End Sub
 

kingjon

XLDnaute Nouveau
Re : copier colonne vers une autre feuille

Merci beaucoup pour ta réponse, en effet après avoir essayer il creer bien un nombre x de pages qui represente le nombre de cellules cependant dans ces pages la valeur represente seulement la premiere cellule de la colonne et non le contenu de chaque colonne d'autant plus que mes colonne ont un "titre",
exemple de colonne :

Poule1
equipe1
equipe2
equipe3

avec ton bout de code, il renvoie dans chaque page
Poule1 3x de suite

Je te donne un exemple en pièce jointe
 

Pièces jointes

  • transfertcolonne.xlsm
    8.7 KB · Affichages: 25
Dernière modification par un modérateur:

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier colonne vers une autre feuille

Re,

Désolé Jonas, pourtant j'avais testé avant de t'envoyer...
Le code modifié (qui marche...) :

Code:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)

Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 2) 'boule sur toutes les colonnes I du tableau des valeurs TV
    Sheets.Add after:=Sheets(Sheets.Count) 'ajoute un onglet a la fin
    ActiveSheet.Name = "Colonne " & I 'renomme l'onglet
    'renvoie dans la cellule A1 de l'onglet la colonne correspondante du tableau des valeurs TV
    ActiveSheet.Range("A1").Resize(UBound(TV, 1), 1).Value = Application.Index(TV, , I)
Next I 'prochaine colonne de la boucle
End Sub
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : copier colonne vers une autre feuille

Re,

Deux manières (parmi tant d'autres) :

Code:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)

Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 2) 'boule sur toutes les colonnes I du tableau des valeurs TV
    Sheets.Add after:=Sheets(Sheets.Count) 'ajoute un onglet a la fin
    ActiveSheet.Name = "Colonne " & I 'renomme l'onglet
    'renvoie dans la cellule A1 de l'onglet la colonne correspondante du tableau des valeurs TV
    ActiveSheet.Range("A1").Resize(UBound(TV, 1), 1).Value = Application.Index(TV, , I)
    ActiveSheet.Rows(1).delete 'Supprime la ligne 1
Next I 'prochaine colonne de la boucle
End Sub
ou :
Code:
Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)

Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
TV = O.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 2) 'boule sur toutes les colonnes I du tableau des valeurs TV
    Sheets.Add after:=Sheets(Sheets.Count) 'ajoute un onglet a la fin
    ActiveSheet.Name = "Colonne " & I 'renomme l'onglet
    'renvoie dans la cellule A1 de l'onglet la colonne correspondante du tableau des valeurs TV
    O.Range(O.Cells(2, I), O.Cells(Application.Rows.Count, I).End(xlUp)).Copy ActiveSheet.Range("A1") 'copy les données de la colonne I et les colles dans A1
Next I 'prochaine colonne de la boucle
End Sub
 

Discussions similaires

  • Question
Microsoft 365 SIERREUR
Réponses
6
Affichages
295

Statistiques des forums

Discussions
312 223
Messages
2 086 407
Membres
103 201
dernier inscrit
centrale vet