Le compilateur saute des instructions dans le code
Résolu
muiigisha
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
muiigisha Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
muiigisha Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je bloque sur un problème et je ne sais plus quoi faire surtout qu'aucune erreur n'est signalée. dans mon code vba tout va bien jusqu'au moment où un bloc d'intructions est considéré invisible par le compilateur. tout ce qui est autour marche sans problème mon code est ci dessous
le bloc sauté est celui entre les ##, j'ai mis le reste de code (qui marche sans pb)en commentaires pour pouvoir aller direct au pb. les "lbound" et "ubound" contiennent bien les bornes des tableaux respectifs.
Aidez moi svp.
je bloque sur un problème et je ne sais plus quoi faire surtout qu'aucune erreur n'est signalée. dans mon code vba tout va bien jusqu'au moment où un bloc d'intructions est considéré invisible par le compilateur. tout ce qui est autour marche sans problème mon code est ci dessous
Option Base 1 Sub FilesStandardization() '*******************Sélection des fichiers, ouverture ,suppression de colonnes ,rangement et changement d'extension******************* Dim Wbk As Workbook, iprF As Workbook, iprCC As Workbook Dim file, Quelfichier() As Variant Dim n, m, ctr, a As Long, b As Long Dim cmpt1 As Long, cmpt2 As Long Dim NameLastcolF As String, NameLastcolCC As String, ast As String, bst As String Dim ColTitleF(), ColTitleCC() As Variant Application.ScreenUpdating = False 'Sélection et ouverture des fichiers 'S'assurer que les fichiers sont classés par ordre alphabétique Quelfichier = Application.GetOpenFilename("Excel Files (*.csv), *.csv", 2, "Sélection des fichiers", , True) 'If Quelfichier <> True Then 'Displaying a message if file not choosed in the above step 'MsgBox "File not Found.", vbExclamation, "!! Warning !!" 'Exit Sub 'End If Application.ScreenUpdating = False For ctr = 1 To UBound(Quelfichier) Set Wbk = Workbooks.Open(Filename:=Quelfichier(ctr)) Next ctr For Each Wbk In Workbooks If Wbk.Name = "IPR Fields.csv" Then Set iprF = Wbk End If If Wbk.Name = "IPR Fields - Complete and Closure State.csv" Then Set iprCC = Wbk End If Next Wbk 'For ctr = 1 To UBound(Quelfichier) ' If ctr = 1 Then ' Set iprCC = Workbooks.Open(Filename:=Quelfichier(ctr)) ' Else ' Set iprF = Workbooks.Open(Filename:=Quelfichier(ctr)) ' End If 'Next ctr 'suppression de colonnes 'iprF.Activate 'Range("B1:B80227,E1:E80227,G1:G80227,L1:L80227,O1:O80227,P1:P80227,Q1:Q80227,R1:R80227,U1:U80227,V1:V80227,X1:X80227,Y1:Y80227,Z1:Z80227").Select 'Selection.EntireColumn.Delete 'Range("P1:P80227,Q1:Q80227,T1:T80227,W1:W80227,AA1:AA80227,AB1:AB80227,AC1:AC80227,AD1:AD80227,AE1:AE80227,AG1:AG80227,AK1:AK80227,AL1:AL80227,AM1:AM80227").Select 'Selection.EntireColumn.Delete 'Range("AA1:AA80227,AB1:AB80227,AE1:AE80227,AK1:AK80227,AM1:AM80227,AN1:AN80227,AO1:AO80227,AP1:AP80227,AR1:AR80227,AT1:AT80227,AU1:AU80227,AV1:AV80227,AW1:AW80227,AX1:AX80227,AZ1:AZ80227").Select 'Selection.EntireColumn.Delete 'Range("AL1:AL80227,AM1:AM80227,AN1:AN80227,AO1:AO80227,AQ1:AQ80227,AR1:AR80227,AS1:AS80227,AZ1:AZ80227,BB1:BB80227,BC1:BC80227,BD1:BD80227,BF1:BF80227,BG1:BG80227,BI1:BI80227,BJ1:BJ80227").Select 'Selection.EntireColumn.Delete 'Range("AW1:AW80227,AX1:AX80227,AZ1:AZ80227,BA1:BA80227,BB1:BB80227,BC1:BC80227,BD1:BD80227,BE1:BE80227,BG1:BG80227,BH1:BH80227,BI1:BI80227,BJ1:BJ80227").Select 'Selection.EntireColumn.Delete 'iprF.RefreshAll iprF.Activate ColTitleF = Range("A1:BC1") iprCC.Activate ColTitleCC = Range("A1:DS1") ## For cmpt1 = LBound(ColTitleF, 2) To cmpt1 = UBound(ColTitleF, 2) If ColTitleF(1, cmpt1) <> ColTitleCC(1, cmpt1) Then For cmpt2 = LBound(ColTitleCC, 2) To cmpt2 = UBound(ColTitleCC, 2) If ColTitleF(1, cmpt1) = ColTitleCC(1, cmpt2) Then Call Permut(cmpt1, cmpt2) Exit For End If Next End If ## Next 'iprCC.RefreshAll 'iprF.SaveAs FileFormat:=xlNormal 'iprF.Close Savechanges:=True 'iprCC.SaveAs FileFormat:=xlNormal 'iprCC.Close Savechanges:=True End Sub Sub Permut(Col1 As Long, Col2 As Long) Dim c1 As Long, c2 As Long iprCC.Activate c1 = IIf(Col1 < Col2, Col1, Col2) c2 = IIf(Col1 > Col2, Col1, Col2) Application.ScreenUpdating = False Columns(c2).Copy Columns(c1).Insert Columns(c1 + 1).Cut Cells(1, c2 + 1) Columns(c1 + 1).Delete End Sub
le bloc sauté est celui entre les ##, j'ai mis le reste de code (qui marche sans pb)en commentaires pour pouvoir aller direct au pb. les "lbound" et "ubound" contiennent bien les bornes des tableaux respectifs.
Aidez moi svp.
EDIT : Ajout du langage dans les balises de code (pour avoir la coloration syntaxique )
A voir également:
- Le compilateur saute des instructions dans le code
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
- Code blocks avec compilateur - Télécharger - Langages
1 réponse
Bonjour,
As tu essayé de le faire en mode pas à pas pour voir ce qui se passe exactement.
As tu, en mode pas à pas, regardé les valeurs que prennent tes différentes variables pour savoir si elles correspondent bien à ce que tu attends ?
Et.. à mon avis :
est à remplacer par :
As tu essayé de le faire en mode pas à pas pour voir ce qui se passe exactement.
As tu, en mode pas à pas, regardé les valeurs que prennent tes différentes variables pour savoir si elles correspondent bien à ce que tu attends ?
Et.. à mon avis :
For cmpt1 = LBound(ColTitleF, 2) To cmpt1 = UBound(ColTitleF, 2)
est à remplacer par :
For cmpt1 = LBound(ColTitleF, 2) To UBound(ColTitleF, 2)
merci.
une question stp je souhaiterai afficher une boîte de dialogue si la sélection de fichier n'est pas bien effectuée mais la condition ne marche pas (peut être parce que je sélectionne 2 fichiers) mais je voudrais savoir si c'est possible
Mais bon.. pour cette fois....
Déjà.. ton code est en commentaire.... normal que ça ne marche pas.
Ensuite... as tu essayé, en mode pas à pas, de regarder quelle était la valeur de ta variable Quelfichier ??
NB: Pense à cliquer sur le lien "SUJET RESOLU" qui se trouve sous le titre de ta question.
Oui j'ai compilé pas à pas mais ça me génère une erreur et dit que les types ne correspondent pas:"type mismatch"