Copier/Coller une colonne dans un Select/Case

shenmicke

XLDnaute Junior
Bonjour,
je cherche a copier coller une colonne dans un autre onglet.
Je copie colle dans l'onglet qui porte le nom de la ligne 9.

Code:
Sub Macro1()

Dim cmp As Integer, jb As Integer, nf As Integer, am As Integer, er As Integer, mb As Integer, hd As Integer, ag As Integer

cmp = jb = nf = am = em = hd = ag = 14

'***********************
'Organisation par noms
'***********************

Select Case (Cells(9, cmp).Value)

    Case "Julie B"
    
        Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, cmp), Cells(744, cmp)).Value = Sheets("Julie B").Range(Cells(11, jb), Cells(744, jb))
        jb = jb + 1
        cmp = cmp + 1
        
    Case "Nathalie F"
    
        Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, cmp), Cells(744, cmp)).Value = Sheets("Nathalie F").Range(Cells(11, nf), Cells(744, nf))
        nf = nf + 1
        cmp = cmp + 1
        
    Case "Alexis M"
    
        Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, cmp), Cells(744, cmp)).Value = Sheets("Alexis M").Range(Cells(11, am), Cells(744, am))
        am = am + 1
        cmp = cmp + 1

    Case "Elodie R"
    
        Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, cmp), Cells(744, cmp)).Value = Sheets("Elodie R").Range(Cells(11, er), Cells(744, er))
        er = er + 1
        cmp = cmp + 1
        
     Case "Marie-Laetitia B"
    
        Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, cmp), Cells(744, cmp)).Value = Sheets("Marie-Laetitia B").Range(Cells(11, mb), Cells(744, mb))
        mb = mb + 1
        cmp = cmp + 1

    Case "Hélène D"
    
        Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, cmp), Cells(744, cmp)).Value = Sheets("Hélène D").Range(Cells(11, hd), Cells(744, hd))
        hd = hd + 1
        cmp = cmp + 1


     Case "Audrey G"
    
        Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, cmp), Cells(744, cmp)).Value = Sheets("Audrey G").Range(Cells(11, ag), Cells(744, ag))
        ag = ag + 1
        cmp = cmp + 1
        
    Case Else
        End Select
        
        
        End Sub



Mon fichier est trop lourd même en zip pour vous le faire partager malheureusement :(

Merci

update : j'ai enlevé les noms mais garder les prénoms :p
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Copier/Coller une colonne dans un Select/Case

Bonjour shenmicke

Tu devrais lire ou relire la charte du forum
Lien supprimé

Pas de données nominatives sur ce forum, merci d'éditer ton post et de supprimer les noms

A+
 
C

Compte Supprimé 979

Guest
Re : Copier/Coller une colonne dans un Select/Case

RE,

Merci d'avoir supprimé les noms sur le forum, mais ce serait bien aussi dans ton code
et sur tes feuilles, les noms sont partout

Sinon a quoi te servent les incrémentation du style
Code:
jb = jb + 1

A+
 

shenmicke

XLDnaute Junior
Re : Copier/Coller une colonne dans un Select/Case

j'ai édité mon fichier voilà :)
Sinon les incrémentations sont pour changer de colonne.
Une pour chaque onglet sachant qu'elles commencent toutes à 14 (colonne N).
Le cmp parcourt les colonnes du premier onglet et les autres compteurs me servent de compteurs pour coller les colonnes copier (le nom des compteurs sont les initiales des onglets).

Sinon deuxième question, j'ai vu que j'avais des 0 et qu'il faut qu'il continue à avancer.
Je pense faire un :

Case 0

cmp = cmp + 1

Celà devrait être bon non?
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Copier/Coller une colonne dans un Select/Case

Bonjour à tous

Ici aussi tu as fait le ménage ?
https://www.excel-downloads.com/threads/copy-paste-values.168141/


PS: On dirait le même fichier non ?

PS2: Quand je parle de ménage, c'est aussi rapport à la charte qui conseille de travailler sur des fichiers exemples allégés (seulement quelques lignes) et pas les fichiers originaux...
 
Dernière édition:

shenmicke

XLDnaute Junior
Re : Copier/Coller une colonne dans un Select/Case

Bonjour Staple1600,

En effet il ressemble au fichier sauf qu'il n'est pas remplis. J'ai enlevé les fichiers tant pis :(
Vu que j'ai pas fais un tabac avec ce sujet j'ai décidé de faire autrement pour le moment et de passer à autre chose. C'est pour celà que j'ai fais ce sujet. A priori c'est juste le copier coller que je n'arrive pas à faire fonctionner. Je comprends pas pourquoi car j'ai déjà fais ce genre d'opération avec ce code :(
 
C

Compte Supprimé 979

Guest
Re : Copier/Coller une colonne dans un Select/Case

Re,

Sinon les incrémentations sont pour changer de colonne.
Une pour chaque onglet sachant qu'elles commencent toutes à 14 (colonne N).
Le cmp parcourt les colonnes du premier onglet et les autres compteurs me servent de compteurs pour coller les colonnes copier (le nom des compteurs sont les initiales des onglets).

Si cette question c'est que tu devait pouvoir abrégé tes lignes pas
Code:
  NonSht = Cells(9, cmp).Value
  Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, cmp), Cells(744, cmp)).Value _
    = Sheets(nonmsht).Range(Cells(11, jb), Cells(744, jb))
  jb = jb + 1
  cmp = cmp + 1
Plus besoin de "Select Case" ;)

En revanche, comme je ne sais pas comment est manipulé ta sub
Je ne sais pas comment faire pour l'incrémentation

A+
 

Staple1600

XLDnaute Barbatruc
Re : Copier/Coller une colonne dans un Select/Case

Re


Tu n'es pas obligé d'enlever tes fichiers, simplement la charte conseille de joindre des fichiers simplifiés :
1) pour réduire leur taille
2) pour se focaliser sur le problème rencontré.

Donc d'habitude, un fichier avec quelques lignes et quelques colonnes contenant les formules ou le code VBA "défectueux" suffit.

EDITION: Bonjour BrunoM45
 

shenmicke

XLDnaute Junior
Re : Copier/Coller une colonne dans un Select/Case

Re bonjour,

je pense comprendre ce que tu veux faire mais je pense que je me suis pas bien exprimé.
On est obligé de faire différents compteurs sur chaque onglet car par exemple:

je prends ma première colonne de 2012 FORECASTS TOTAL QUANTITE qui est celle de Nathalie F. Je copie et colle la colonne dans l'onglet Nathalie F à la case 14. On incrémente donc le compteur colonne de l'onglet de Nathalie F à 15.

Deuxième colonne de 2012 FORECASTS TOTAL QUANTITE qui est celle de Julie B. Je copie et colle la colonne à la case 14 et pas 15 !

Troisième colonne de 2012 FORECASTS TOTAL QUANTITE qui est encore celle de Nathalie F. Je copie la troisième colonne dans la 15ème colonne de l'onglet de Nathalie F.

Voilà pourquoi j'ai des compteurs sur chaque onglet et pourquoi j'ai fais un case :)

A présent j'ai une erreur sur le Case :


Select Case (Cells(9, cmp).Value) je comprends pas, ça marchait y a quelques minutes :confused:
 
Dernière édition:
C

Compte Supprimé 979

Guest
Re : Copier/Coller une colonne dans un Select/Case

je pense comprendre ce que tu veux faire mais je pense que je me suis pas bien exprimé.
On est obligé de faire différents compteurs sur chaque onglet ...
Voilà pourquoi j'ai des compteurs sur chaque onglet et pourquoi j'ai fais un case
Désolé de te contre dire, mais après explication, je pense avoir compris

Essaye ce code et dis nous ;)
Code:
Sub Macro1()
  Dim Cmp As Integer, DCol As Integer, NomSht As String
  ' Initialisation des variables
  Cmp = 14
  ' récupérer el nom
  NomSht = Cells(9, Cmp).Value
  ' Trouver la dernière colonne de la feuille
  With Sheets(NomSht)
    DCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
  End With
  ' Inscrire les données
  Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, Cmp), Cells(744, Cmp)).Value _
    = Sheets(NomSht).Range(Cells(11, DCol), Cells(744, DCol))
  Cmp = Cmp + 1
End Sub

Attention !
Avec
Code:
NomSht = Cells(9, Cmp).Value
Il faut que le nom que se trouve sur la ligne 9 corresponde bien à un nom de feuille
Sans espace avant et après

A+
 
Dernière modification par un modérateur:

shenmicke

XLDnaute Junior
Re : Copier/Coller une colonne dans un Select/Case

Merci, j'ai corrigé ces deux fautes de frappes et j'ai maintenant :

Code:
Sub Macro1()
  Dim Cmp As Integer, DCol As Integer, NomSht As String
  ' Initialisation des variables
  Cmp = 14
  ' récupérer el nom
  NomSht = Cells(9, Cmp).Value
  ' Trouver la dernière colonne de la feuille
  DCol = Sheets(NomSht).Cells(1, Columns.Count).End(xlToLeft).Column
  ' Inscrire les données
  Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, Cmp), Cells(744, Cmp)).Value _
    = Sheets(NomSht).Range(Cells(11, DCol), Cells(744, DCol))
  Cmp = Cmp + 1
End Sub

Cependant j'ai une erreur qui me dit erreur par l'application ou par l'objet ici:

Sheets("2012 FORECASTS TOTAL QUANTITE").Range(Cells(11, Cmp), Cells(744, Cmp)).Value _
= Sheets(Nonsht).Range(Cells(11, DCol), Cells(744, DCol))
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 100
Messages
2 085 292
Membres
102 852
dernier inscrit
Badrcola26