Pb_Macro_Boucle

Bonjour, je me permets de vous contacter parce que j'ai un petit problème avec une macro et que je ne trouve pas la solution.

La macro est la suivante, elle permet de copier coller des colonnes de la feuille 1 dans la feuille 2 si la première cellule de la feuille 1 est dans la liste ListeComplete ( prédéfinie dans la macro)

Mais lorsque je lance la macro, la première colonne se c/c dans la feuille 2 mais pas les autres alors qu'il y a bien une boucle for et que les premières cellules sont incluses dans ma liste:

Dim nbligne As Integer

Sheets("Feuil1").Select

nbligne = Range("A1").SpecialCells(xlCellTypeLastCell).Row

For i = 1 To bcol

For j = 1 To UBound(ListeComplete)

If Cells(1, i).Value = ListeComplete(j) Then

Columns(i).Select

Selection.Copy

Sheets("Feuil2").Select

Columns(i).Select

ActiveSheet.Paste

End If

Next j

Next i

Si vous pouviez me donner un indice pour resoudre mon problème svp.

Cordialement

Hello,

le mieux serait d'avoir ton fichier. Ou a minima ton code en entier pour identifier l'erreur.

A+

Ok merci pour ta réponse le voila

Option Explicit

Sub Liste_Complete()

Dim i As Integer

Dim bcol As Double

Dim j As Integer

Dim ListeComplete(230) As String

bcol = Range("A1").SpecialCells(xlCellTypeLastCell).Column

ListeComplete(1) = "a"

ListeComplete(2) = "b"

ListeComplete(3) = "m"

ListeComplete(4) = "c"

ListeComplete(5) = "Identifiant"

ListeComplete(6) = "TypeOperation"

ListeComplete(7) = "NatureScenarisk"

ListeComplete(8) = "TypeProduit"

ListeComplete(9) = "TypeSousJacent"

ListeComplete(10) = "TypeStructure"

ListeComplete(11) = "TypeProduit_Source"

ListeComplete(12) = "NatureProduit"

ListeComplete(13) = "NatureSousJacent"

ListeComplete(14) = "Desk"

ListeComplete(15) = "Book"

ListeComplete(16) = "Compartiment"

ListeComplete(17) = "SousCompartiment"

ListeComplete(18) = "CategorieIFRS"

ListeComplete(19) = "UniteInterne"

ListeComplete(20) = "Book_Perimetre"

ListeComplete(21) = "PtfProduit"

ListeComplete(22) = "Folder"

ListeComplete(23) = "Couverture"

ListeComplete(24) = "EstCouvertureClientele"

ListeComplete(25) = "Liaison_ID"

ListeComplete(26) = "Liaison_Type"

ListeComplete(27) = "Perimetre"

ListeComplete(28) = "PerimetrePHOENIX"

ListeComplete(29) = "PerimetrePHOENIX_TITRE"

ListeComplete(30) = "PerimetrePV"

ListeComplete(31) = "PerimetreSTE"

ListeComplete(32) = "Commentaire"

ListeComplete(33) = "Echeancier_EstValide"

ListeComplete(34) = "TypePricer"

ListeComplete(35) = "Contrepartie"

ListeComplete(36) = "Contrepartie_CodeLocal"

ListeComplete(37) = "Contrepartie_CodeRFT"

ListeComplete(38) = "Contrepartie_CodeRFT_Rattachement"

ListeComplete(39) = "Contrepartie_Rattachement"

ListeComplete(40) = "Contrepartie_Classification"

ListeComplete(41) = "Contrepartie_EstAffilieeBPCE"

ListeComplete(42) = "Contrepartie_EstGrandGroupeBPCE"

ListeComplete(43) = "Contrepartie_EstPetitGroupeBPCE"

ListeComplete(44) = "Contrepartie_EstPerimetreStatutaire"

ListeComplete(45) = "Contrepartie_Palier"

ListeComplete(46) = "Contrepartie_SousPalier"

ListeComplete(47) = "Contrepartie_Type"

ListeComplete(48) = "Contrepartie_ZoneGeographique"

ListeComplete(49) = "Contrepartie_Pays"

ListeComplete(50) = "Contrepartie_Notation_Externe"

ListeComplete(51) = "Contrepartie_Notation_Externe_Source"

ListeComplete(52) = "Contrepartie_SegmentMcDonoughCode"

ListeComplete(53) = "CodeContrat"

ListeComplete(54) = "Isin"

ListeComplete(55) = "CodeSophis"

ListeComplete(56) = "Libelle"

ListeComplete(57) = "Secteur"

ListeComplete(58) = "SpreadIndividuel"

ListeComplete(59) = "CourbeRecovery"

ListeComplete(60) = "Emetteur"

ListeComplete(61) = "Emetteur_CodeLocal"

ListeComplete(62) = "Emetteur_CodeRFT"

ListeComplete(63) = "Emetteur_CodeRFT_Rattachement"

ListeComplete(64) = "Emetteur_Rattachement"

ListeComplete(65) = "Emetteur_Classification"

ListeComplete(66) = "Emetteur_EstAffilieBPCE"

ListeComplete(67) = "Emetteur_EstGrandGroupeBPCE"

ListeComplete(68) = "Emetteur_EstPetitGroupeBPCE"

ListeComplete(69) = "Emetteur_EstPerimetreStatutaire"

ListeComplete(70) = "Emetteur_Palier"

ListeComplete(71) = "Emetteur_SousPalier"

ListeComplete(72) = "Emetteur_Type"

ListeComplete(73) = "Emetteur_TypeBancaire"

ListeComplete(74) = "Emetteur_ZoneGeographique"

ListeComplete(75) = "Emetteur_Pays"

ListeComplete(76) = "Emetteur_Notation_Externe"

ListeComplete(77) = "Emetteur_Notation_Groupe"

ListeComplete(78) = "Emetteur_SegmentMcDonough"

ListeComplete(79) = "Titre_Notation_Externe"

ListeComplete(80) = "Titre_Seniorite"

ListeComplete(81) = "ContratCollateral"

ListeComplete(82) = "DeviseCollateral"

ListeComplete(83) = "TradeDate"

ListeComplete(84) = "DateValeur"

ListeComplete(85) = "DateDebut"

ListeComplete(86) = "DateFin"

ListeComplete(87) = "DateFinAjustee"

ListeComplete(88) = "ExpiryDate"

ListeComplete(89) = "Cours"

ListeComplete(90) = "DateCours"

ListeComplete(91) = "Quotite"

ListeComplete(92) = "Quantite"

ListeComplete(93) = "Sens"

ListeComplete(94) = "Devise"

ListeComplete(95) = "Secteur_2"

ListeComplete(96) = "Devise_2"

ListeComplete(97) = "Nominal"

ListeComplete(98) = "NominalAjuste"

ListeComplete(99) = "Index"

ListeComplete(100) = "Taux"

ListeComplete(101) = "Marge"

ListeComplete(102) = "Base"

ListeComplete(103) = "Frequence"

ListeComplete(104) = "FormuleIndex_J1"

ListeComplete(105) = "DernierTauxConnu_J1"

ListeComplete(106) = "ID_Jambe"

ListeComplete(107) = "SecteurJ2"

ListeComplete(108) = "SensJ2"

ListeComplete(109) = "DeviseJ2"

ListeComplete(110) = "SecteurJ2_2"

ListeComplete(111) = "DeviseJ2_2"

ListeComplete(112) = "NominalJ2"

ListeComplete(113) = "NominalJ2Ajuste"

ListeComplete(114) = "IndexJ2"

ListeComplete(115) = "TauxJ2"

ListeComplete(116) = "MargeJ2"

ListeComplete(117) = "BaseJ2"

ListeComplete(118) = "FrequenceJ2"

ListeComplete(119) = "FormuleIndex_J2"

ListeComplete(120) = "DernierTauxConnu_J2"

ListeComplete(121) = "ID_JambeJ2"

ListeComplete(122) = "Amortissement"

ListeComplete(123) = "Echeancier_TypeNominal"

ListeComplete(124) = "Echeancier_TypeCoupon"

ListeComplete(125) = "Niveau_Observabilite"

ListeComplete(126) = "Encours_Montant"

ListeComplete(127) = "CalculMetier1"

ListeComplete(128) = "MtM_Source_Euro"

ListeComplete(129) = "CouponCouru_Source_Euro"

ListeComplete(130) = "Type_MtM_Source_Euro"

ListeComplete(131) = "Date_MtM_Source_Euro"

ListeComplete(132) = "MtM_Recalcule"

ListeComplete(133) = "Delta"

ListeComplete(134) = "Vega"

ListeComplete(135) = "MontantEngagement"

ListeComplete(136) = "Strike"

ListeComplete(137) = "TypeOption"

ListeComplete(138) = "NatureOption"

ListeComplete(139) = "TypeBarriereDown"

ListeComplete(140) = "BarriereBasse"

ListeComplete(141) = "TypeBarriereUp"

ListeComplete(142) = "BarriereHaute"

ListeComplete(143) = "DateLivraison"

ListeComplete(144) = "TypeLivraison"

ListeComplete(145) = "Prime"

ListeComplete(146) = "SoulteExercice"

ListeComplete(147) = "DateExercice"

ListeComplete(148) = "Version"

ListeComplete(149) = "BookTranscode"

ListeComplete(150) = "StructId"

ListeComplete(151) = "DateExtrapolation"

ListeComplete(152) = "DateValorisation"

ListeComplete(153) = "DateEcheance"

ListeComplete(154) = "DateEcheanceJ2"

ListeComplete(155) = "FreqValo"

ListeComplete(156) = "NbJLiq"

ListeComplete(157) = "Liquidite"

ListeComplete(158) = "WellPriced"

ListeComplete(159) = "MtM"

ListeComplete(160) = "Couru"

ListeComplete(161) = "MtM_Source_Devise"

ListeComplete(162) = "MtM_Scenarisk_Devise"

ListeComplete(163) = "MtM_Scenarisk_Euro"

ListeComplete(164) = "CC_J1"

ListeComplete(165) = "CC_J2"

ListeComplete(166) = "TypeDesk"

ListeComplete(167) = "PerimetreReportSTE"

ListeComplete(168) = "FiltreSTE"

ListeComplete(169) = "TiersRisqueSTE"

ListeComplete(170) = "TiersRisque_ClassificationSTE"

ListeComplete(171) = "Emetteur_TypeSTE"

ListeComplete(172) = "Emetteur_RegroupementPaysSTE_EQ"

ListeComplete(173) = "Emetteur_RegroupementPaysSTE_SPR"

ListeComplete(174) = "EmetteurSTE"

ListeComplete(175) = "Emetteur_PaysSTE"

ListeComplete(176) = "Emetteur_TypeSTEBA"

ListeComplete(177) = "Emetteur_RegroupementPaysSTEBA_EQ"

ListeComplete(178) = "Emetteur_RegroupementPaysSTEBA_SPR"

ListeComplete(179) = "Emetteur_RegroupementPaysSTE_SPRsov"

ListeComplete(180) = "Emetteur_GradeSTEBA"

ListeComplete(181) = "Scen - IdPtf"

ListeComplete(182) = "Scen - IdPtfAdj"

ListeComplete(183) = "IsVaRPose"

ListeComplete(184) = "VaRPose_Param1j99p"

ListeComplete(185) = "IsMtM_Scenarisk"

ListeComplete(186) = "MtM_Scenarisk_EUR"

ListeComplete(187) = "S - IsSensi"

ListeComplete(188) = "S - AxeIN"

ListeComplete(189) = "S - AxeOut"

ListeComplete(190) = "S - EQ_Delta"

ListeComplete(191) = "S - EQ_Vega"

ListeComplete(192) = "S - IR_Delta"

ListeComplete(193) = "S - IR_Delta1%"

ListeComplete(194) = "S - IR_Vega"

ListeComplete(195) = "S - INF_Delta"

ListeComplete(196) = "S - INF_Delta1%"

ListeComplete(197) = "S - INF_Vega"

ListeComplete(198) = "S - SPR_Delta"

ListeComplete(199) = "S - SPR_Delta1%"

ListeComplete(200) = "S - FX_Delta"

ListeComplete(201) = "S - FX_Vega"

ListeComplete(202) = "S - NO"

ListeComplete(203) = "S - EQ_Smile"

ListeComplete(204) = "S - IR_Sabr"

ListeComplete(205) = "S - CM_Delta"

ListeComplete(206) = "BRED - IsInAbro"

ListeComplete(207) = "BRED - Niv1"

ListeComplete(208) = "BRED - Niv2"

ListeComplete(209) = "BRED - Niv3"

ListeComplete(210) = "BRED - Niv4"

ListeComplete(211) = "BRED - Niv5"

ListeComplete(212) = "BRED - Niv6"

ListeComplete(213) = "ST - IsStress"

ListeComplete(214) = "STBSOV_ABSOLU"

ListeComplete(215) = "STBSOV_RELATIF"

ListeComplete(216) = "STBSOV_ABSOLU_TAUX"

ListeComplete(217) = "STBSOV_ABSOLU_CREDIT"

ListeComplete(218) = "STBSOV_RELATIF_TAUX"

ListeComplete(219) = "STBSOV_RELATIF_CREDIT"

ListeComplete(220) = "STBSINF_ABSOLU"

ListeComplete(221) = "STBSINF_ABSOLU_TAUX"

ListeComplete(222) = "STBSINF_ABSOLU_CREDIT"

ListeComplete(223) = "STBSINF_G_TX_D_RFE"

ListeComplete(224) = "STBSINF_A_TX_D_FE"

ListeComplete(225) = "STBCORP_ABSOLU"

ListeComplete(226) = "STBCORP_RELATIF"

ListeComplete(227) = "STBCORP_ABSOLU_CREDIT"

ListeComplete(228) = "STBCORP_RELATIF_CREDIT"

ListeComplete(229) = "STBMIX_ABSOLU"

ListeComplete(230) = "FichierSource"

Dim nbligne As Integer

Sheets("Feuil1").Select

nbligne = Range("A1").SpecialCells(xlCellTypeLastCell).Row

For i = 1 To bcol

For j = 1 To UBound(ListeComplete)

If Cells(1, i).Value = ListeComplete(j) Then

'Loop

Columns(i).Select

Selection.Copy

Sheets("Feuil2").Select

Columns(i).Select

ActiveSheet.Paste

End If

Next j

Next i

End Sub

Le seul pb est que apres le c/c de la premiere colonne , ca ne c/c pas la 2eme et ainsi de suite

Bonsoir,

Ecris ton code comme du code VBA, sans Select, en qualifiant tes expressions (et en l'indentant par la même occasion, cela te permettrait de voir les anomalies plus facilement !), et le problème s'évanouira de lui-même... !

Cordialement.

C'est bon merci j'ai resolu le pb il etait dans ma boucle For, il fallait que je reprécise dans quelle feuille je retournais à la fin.

Tu règles le problème immédiat, pour que ton code mal écrit et forcément lent continue de fonctionner jusqu'à la prochaine chausse-trappe... Un code structuré selon les règles de programmation, respectant la syntaxe, élimine d'emblée ce type de risque, demeure fiable dans le temps et est plus rapide... Mais on peut faire le choix d'un code illisible et apprécier se réserver la surprise d'erreurs inopinées...

Cordialement.

Rechercher des sujets similaires à "macro boucle"