Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

copier dans différente colonne

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

olive323

XLDnaute Occasionnel
Bonjour,

Je desire copier les valeurs d'une colonne ex: Feuil1; colonne A, dans un autre classeur ex: Feuil2; colonne B.
mais je desire qu'a chaque changement de valeur de la colonne A que le collage dans la feuil2 se fasse dans une colonne différente.

Feuil1 feuil2
colonne A colonne B colonne c colonne D
C001 C001 C003 C006
C001 C001 C003 C006
C001 C001 C003 C006
C003 C003 C006
C003
C003
C003
C006
C006
C006
C006
Avec une macro ça serait génial mais j'ai besoin de votre savoir

Merci
 
Re : copier dans différente colonne

Bonjour olive323
Essayez ça :
Code:
[COLOR="DarkSlateGray"]Sub toto()
Dim f, c, n, l, v
   With Sheets("Feuil1")
      f = .Cells(.Rows.Count, 1).End(xlUp).Row
      c = 1
      n = 2
      Do While n <= f
         c = c + 1
         v = .Cells(n, 1)
         l = 2
         Do While .Cells(n, 1).Value = v
            Sheets("Feuil2").Cells(l, c).Value = v
            l = l + 1
            n = n + 1
         Loop
      Loop
   End With
End Sub[/COLOR]
Sans classeur, difficile de tester, mais vous adapterez...​
ROGER2327
#1858
 
Re : copier dans différente colonne

Bonjour à tous
Suite à une demande de olive323, voici la procédure commentée :
Code:
[COLOR="DarkSlateGray"]Sub toto()[COLOR="SeaGreen"] '1 :[/COLOR]
Dim f, c, n, l, v [COLOR="SeaGreen"]'2 :[/COLOR]
   c = 1 [COLOR="SeaGreen"]'3 : Rang le la dernière colonne à ne pas utiliser dans _
la feuille "Feuil2".[/COLOR]
   n = 2 [COLOR="SeaGreen"]'4 : Rang de la première ligne à traiter dans la feuille _
"Feuil1".[/COLOR]
   With Sheets("Feuil1") [COLOR="SeaGreen"]'5 : Dans la feuille "Feuil1"...[/COLOR]
      f = .Cells(.Rows.Count, 1).End(xlUp).Row [COLOR="SeaGreen"]'6 : ...on cherche _
le rang de la dernière cellule non vide de la colonne A.[/COLOR]
      Do While n <= f [COLOR="SeaGreen"]'7 : Tant que la ligne n est au-dessus de la _
ligne, ou est la ligne f...[/COLOR]
         c = c + 1 [COLOR="SeaGreen"]'8 : ...on incrémente le rang de la colonne de _
destination dans la feuille "Feuil2".[/COLOR]
         v = .Cells(n, 1).Value [COLOR="SeaGreen"]'9 : On relève la valeur de la _
cellule de la ligne n et de la colonne 1[/COLOR]
         l = 2 [COLOR="SeaGreen"]'10 : Rang de la première ligne à utiliser dans la _
feuille "Feuil2".[/COLOR]
         Do While .Cells(n, 1).Value = v [COLOR="SeaGreen"]'11 : Tant que la valeur _
de la cellule de la ligne n et de la colonne 1 de la feuille _
"Feuil1" est égale a v...[/COLOR]
            Sheets("Feuil2").Cells(l, c).Value = v [COLOR="SeaGreen"]'12 : ...mettre _
cette valeur dans la cellule de la ligne l et de la colonne c _
de la feuille "Feuil2".[/COLOR]
            l = l + 1 [COLOR="SeaGreen"]'13 : On incrémente le compteur de lignes de _
la feuille "Feuil2".[/COLOR]
            n = n + 1 [COLOR="SeaGreen"]'14 : On incrémente le compteur de lignes de _
la feuille "Feuil1".[/COLOR]
         Loop [COLOR="SeaGreen"]'15 : Retour ligne 11[/COLOR]
      Loop [COLOR="SeaGreen"]'16 : Retour ligne 7[/COLOR]
   End With [COLOR="SeaGreen"]'17 : Fin de la référence à la feuille "Feuil1".[/COLOR]
End Sub [COLOR="SeaGreen"]' 18 :[/COLOR][/COLOR]
ROGER2327
#1883
 
Re : copier dans différente colonne

Bonjour Roger2327,

Merci pour cette explication détaillée.
Malgré ça, je bloque...
Je vous joins le fichier cette fois.
Comme vous pouvez le constater, ma macro fonctionne. Mais, si le fichier import est modifié c'est la grande panique.

Dans la feuille courbe d'activité, je n'arrive pas non plus a intégrer "05:00:00" automatiquement dans la derniere cellule de la colonne heures de scan?


Pensez-vous aussi qu'il soit possible de visionner sous forme de graphique l'inactivité de chaque opérateur d'une manière assez parlante.
Mais graph fonctionne bien quand les temps d'inactivité ne sont pas trop important. Mais peuvent-ils s'adapter à l'import qui est fait dans courbe d'activité?

Cordialement

Et merci encore
 

Pièces jointes

Re : copier dans différente colonne

Re...
Je ne saisis pas exactement ce que vous cherchez vraiment. En tout cas, ça m'a l'air assez éloigné de votre demande initiale.
Je ne vois pas le rapport entre votre procédure et celle que j'ai proposé (vous travaillez maintenant sur des plages fixes), mais notez que votre procédure peut s'écrire plus simplement :
Code:
[COLOR="DarkSlateGray"]Sub Macro1()
   With Sheets("courbe d'activité")
      Sheets("import").Range("D2:E7").Copy Destination:=.Range("A4")
      Sheets("import").Range("D8:E13").Copy Destination:=.Range("G4")
      Sheets("import").Range("D14:E19").Copy Destination:=.Range("M4")
      Sheets("import").Range("D20:E31").Copy Destination:=.Range("S4")
      Sheets("import").Range("D32:E36").Copy Destination:=.Range("Y4")
      .Activate
   End With
End Sub[/COLOR]
ROGER2327
#1900
 
Re : copier dans différente colonne



Bonjour,

Merci pour cette reponse.
Mon probleme est que la feuille import est évolutive, donc quand celle ci evolue par exemple l'activitén de C006 est mélangé avec C012.

Cordialement
 
Re : copier dans différente colonne

Re...
(...) Mon probleme est que la feuille import est évolutive, donc quand celle ci evolue par exemple l'activitén de C006 est mélangé avec C012. (...)
C'est pourquoi je vous ai soumis une procédure fonctionnant sur un nombre quelconque de données.
Bien entendu, il faut la modifier si vous voulez faire autre chose que ce que vous demandiez dans le message #1. En fait, ce qui serait intéressant, c'est que vous posiez dès le debut le vrai problème à traiter. (Il ne s'agit pas de reporter les valeurs distinctes de la colonne A dans des colonnes distinctes et contigües de la feuille B, mais de reporter ces valeurs accompagnées d'autres valeurs de la même ligne, et par conséquent pas dans des colonnes contigües. Le problème est assez différent.)
Bonne soirée.
ROGER2327
#1902
 
Re : copier dans différente colonne


Bonjour,

Je comprends bien votre mécontentement et j'en suis désolé!!!
Je pensez pouvoir modifier votre macro pour l'adapter, mais cela c'est avéré beaucoup plus compliqué que prévu.

Ne pas prevoir c'est déjà gemir.
L.V
 
Re : copier dans différente colonne

Re...
Bonjour,

Je comprends bien votre mécontentement et j'en suis désolé!!!
Je pensez pouvoir modifier votre macro pour l'adapter, mais cela c'est avéré beaucoup plus compliqué que prévu.

Ne pas prevoir c'est déjà gemir.
L.V
Mécontentement est peut être un peu fort, mais il est vrai qu'il est assez long de rédiger des commentaires de code pour qu'on soit heureux de voir ces codes réutilisés.
Pour vous prouver que je ne suis pas fâché, voici un code modifié qui est peut-être plus conforme à votre attente. Vous constaterez qu'il n'y a pas énormément de modifications. En comparant ce nouveau code avec l'ancien, il vous sera peut-être possible de mieux comprendre leur fonctionnement.
Bon courage !
Code:
[COLOR="DarkSlateGray"]Sub toto_2()
Dim f, c, n, l, v
   With Sheets("import")
      f = .Cells(.Rows.Count, 5).End(xlUp).Row
      c = 2
      n = 2
      Do While n <= f
         v = .Cells(n, 5)
         l = 4
         Do While .Cells(n, 5).Value = v
            Sheets("courbe d'activité").Cells(l, c).Value = v
            Sheets("courbe d'activité").Cells(l, c - 1).Value = .Cells(n, 4)
            l = l + 1
            n = n + 1
         Loop
         Sheets("courbe d'activité").Cells(l, c - 1).Value = Sheets("courbe d'activité").Cells(3, c - 1) + 1 / 3 'Pour placer "5:00:00" à la fin.
         c = c + 6
      Loop
   End With
End Sub[/COLOR]
ROGER2327
#1920
 
Dernière édition:
Re : copier dans différente colonne

 
Re : copier dans différente colonne

Re...
J'espère que le dernier code fonctionne correctement. Si ce n'est pas le cas, n'hésitez pas à revenir.
Bon courage pour la suite.

ROGER2327
#1923

Bonjour Roger2327

Ce code fonctionne à merveille. Merci beaucoup!!!
il y a juste un petit problème avec "05:00:00" qui se positionne a la fin de chaque colonne, car il ne tient pas compte de la date. De ce fait le calcul entre l'heure du dernier scan et le "05:00:00" de la fin ne peut plus ce calculer. (Enfin le calcul se fait, mais avec des heures négatives car la date de la cellule est 01/01/1900)

Si vous pouvez y mettre un ptit coup de clavier?

Cordialement

Olive323












Cordialement

olive323
 
Re : copier dans différente colonne

Re...
Je ne comprends pas ce que vous voulez dire, car la dernière cellule ajoutée en bas de colonne tient compte de la date en ligne 3 :
Code:
[COLOR="DarkSlateGray"]         Sheets("courbe d'activité").Cells(l, c - 1).Value = [COLOR="Red"]Sheets("courbe d'activité").Cells(3, c - 1) + 1 / 3[/COLOR] [COLOR="SeaGreen"]'Pour placer "5:00:00" à la fin.[/COLOR]
[/COLOR]
Cette ligne est claire : elle prend la date dans la ligne 3 et y ajoute un tiers de jours, soit 8 heures. En appliquant ce code à votre classeur, j'obtiens par exemple 02/08/2009 05:00:00 en A10, car en A3 on a 01/08/2009 21:00:00.
01/08/2009 21:00:00 + 8h donne 02/08/2009 05:00:00.
Je ne vois comment vous pouvez obtenir 01/01/1900 05:00:00, sauf si la cellule A3 ne fait pas elle-même référence à une date, ce qui ne se devine pas en voyant vos données. (On trouve une date en A3, G3, M3...)
S'il s'agit de prendre la date ailleurs qu'en A3 (ce que j'ai fait faute de savoir où prendre la date...), dites-le : on devrait pouvoir arranger le code.
_
Ce qui est certain dans l'état actuel des choses, c'est qu'en mettant la "plus petite" date possible en A3 (1/01/1900 0:00:00), le code renvoie 1/01/1900 8:00:00.
Pour obtenir 1/01/1900 5:00:00, il faudrait mettre 31/12/1899 21:00:00 en A3, ce qui semble assez problématique.
ROGER2327
#1939
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Souci de copie
Réponses
8
Affichages
383
  • Question Question
Microsoft 365 MFC dans tableau
Réponses
2
Affichages
361
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…