Amélioration de code + erreur 1 fois sur 2
Résolu/Fermé
A voir également:
- Amélioration de code + erreur 1 fois sur 2
- Erreur 0x80070643 - Guide
- Word numéro de page 1/2 - Guide
- Code asci - Guide
- Code erreur t32 ✓ - Forum Livebox
- 2 comptes whatsapp - Guide
6 réponses
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
17 juin 2017 à 20:12
17 juin 2017 à 20:12
Re,
Arf ! Surtout pas ! Si tu me vénères ça va me véner grave !... (oui des fois je parle djeuns mais ça fait trop marrer mon fils ado)...
Arf ! Surtout pas ! Si tu me vénères ça va me véner grave !... (oui des fois je parle djeuns mais ça fait trop marrer mon fils ado)...
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
17 juin 2017 à 15:58
17 juin 2017 à 15:58
Bonjour Leghe, bonjour le forum,
Tu navigues entre plusieurs onglets, il te faut donc spécifier systématiquement l'onglet de la plage que tu désignes. Je te recommande de créer des variables pour chaque onglet utilisé pour simplifier l'écriture du code. Ensuite, la règle d'or c'est d'éviter les Select inutiles qui ne font que ralentir l'exécution du code et sont sources de bug (c'est ton cas). Pour terminer, il est d'usage de placer la déclaration des variables en début du code...
Remarques : tu as définis les variables QUANTITE et ProductIdType avec la même plage de cellulles. Idem pour PRIX et AddDelete. C'est normal ?
Tu copies/colles deux fois SKU, c'est normal ?
Ton code modifié respectant les trois points :
Tu navigues entre plusieurs onglets, il te faut donc spécifier systématiquement l'onglet de la plage que tu désignes. Je te recommande de créer des variables pour chaque onglet utilisé pour simplifier l'écriture du code. Ensuite, la règle d'or c'est d'éviter les Select inutiles qui ne font que ralentir l'exécution du code et sont sources de bug (c'est ton cas). Pour terminer, il est d'usage de placer la déclaration des variables en début du code...
Remarques : tu as définis les variables QUANTITE et ProductIdType avec la même plage de cellulles. Idem pour PRIX et AddDelete. C'est normal ?
Tu copies/colles deux fois SKU, c'est normal ?
Ton code modifié respectant les trois points :
Sub Macro1() Dim CS As Workbook Dim OS As Worksheet Dim CC As Workbook Dim OE As Worksheet Dim OM As Worksheet Dim Cible As Range Dim DerniereCellule As Range Dim dlig As Long, lig As Long Dim rng As Range Dim I As Long Dim SKU As Range Dim QUANTITE As Range Dim PRIX As Range Dim CATEGORIE As Range Dim ProductIdType As Range Dim ItemCondition As Range Dim AddDelete As Range Dim WillShip As Range Dim ExpeditedShipping As Range Dim ItemNote As Range Dim Fulfillment As Range Dim li As Long, lifin As Long Set CS = Workbooks.Open("C:\Users\Gérard\Desktop\Export.xls") Set OS = CS.Worksheets("A") Set CC = ThisWorkbook Set OE = CC.Worksheets("Export") Set OM = CC.Worksheets("majamazonFR") Set Cible = OE.Range("A1") Set DerniereCellule = OS.Cells.SpecialCells(xlCellTypeLastCell) OS.Range(Cells(1, 1), DerniereCellule).Copy Cible CS.Close False 'ferme le classeur sans enregistrer dlig = OE.Range("L" & Rows.Count).End(xlUp).Row For lig = dlig To 2 Step -1 If UCase(OE.Cells(lig, 12)) = "PAS DE VPC" Then Rows(lig).Delete Next lig Set rng = OE.Range("A1").CurrentRegion rng.Columns(12).SpecialCells(xlCellTypeBlanks) = "SANS CATEGORIE" Set SKU = OE.Range("A2:A" & OE.Range("A2").End(xlDown).Row) Set QUANTITE = OE.Range("C2:C" & OE.Range("C2").End(xlDown).Row) Set PRIX = OE.Range("G2:G" & OE.Range("G2").End(xlDown).Row) Set CATEGORIE = OE.Range("L2:L" & OE.Range("L2").End(xlDown).Row) Set ProductIdType = OE.Range("C2:C" & OE.Range("C2").End(xlDown).Row) 'déja attribué à QUANTITE ? Set ItemCondition = OE.Range("E2:E" & OE.Range("E2").End(xlDown).Row) Set AddDelete = OE.Range("G2:G" & OE.Range("G2").End(xlDown).Row) 'déja attribué à PRIX ? Set WillShip = OE.Range("H2:H" & OE.Range("H2").End(xlDown).Row) Set ExpeditedShipping = OE.Range("I2:I" & OE.Range("I2").End(xlDown).Row) Set ItemNote = OE.Range("J2:J" & OE.Range("J2").End(xlDown).Row) Set Fulfillment = OE.Range("K2:K" & OE.Range("K2").End(xlDown).Row) SKU.Copy OM.Range("A2") SKU.Copy OM.Range("B2") 'pourquoi deux fois ? PRIX.Copy OM.Range("D2") Worksheets("majamazonFR").Paste Worksheets("EXPORT").Activate QUANTITE.Copy OM.Range("F2") 'CATEGORIE.Copy OM.Range("L2") Application.ScreenUpdating = False lifin = OE.Range("A" & Rows.Count).End(xlUp).Row For li = 2 To lifin If Left(OE.Range("A" & li), 1) = "B" Then OM.Range("C" & li).Value = 1 Else OM.Range("C" & li).Value = 4 End If Next li Set rng = OM.Range("A1").CurrentRegion rng.Columns(5).SpecialCells(xlCellTypeBlanks) = "11" rng.Columns(7).SpecialCells(xlCellTypeBlanks) = "a" rng.Columns(8).SpecialCells(xlCellTypeBlanks) = "19" rng.Columns(9).SpecialCells(xlCellTypeBlanks) = "N" rng.Columns(10).SpecialCells(xlCellTypeBlanks) = "Envois quotidiens à la levée de 17h. LE spécialiste du voyage sur majamazonFR. Envois quotidiens, protégés. Satisfait ou remboursé. Plus de 5000 références dédiées au voyage (Récits, guides, rando, cartes, beaux livres, jeunesse...)" rng.Columns(11).SpecialCells(xlCellTypeBlanks) = "DEFAULT" ChDir "C:\Users\Gérard\Desktop" CC.SaveAs Filename:="C:\Users\Gérard\Desktop\majamazonFR.txt", _ FileFormat:=xlText, CreateBackup:=False OE.Range("A1").Cells.Clear OM.Rows("2:65536").EntireRow.Delete CC.Save Application.ScreenUpdating = True End Sub
Merci de votre réponse, si rapide !
Une erreur (méthode paste classe worksheet) à cet endroit :
Worksheets("majamazonFR").Paste
Sinon, oui SKU à copier 2 fois, et mea culpa pour les 2 autres !
Une erreur (méthode paste classe worksheet) à cet endroit :
Worksheets("majamazonFR").Paste
Sinon, oui SKU à copier 2 fois, et mea culpa pour les 2 autres !
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
17 juin 2017 à 17:18
17 juin 2017 à 17:18
Re,
Oui désolé ces deux lignes sont à supprimer dans le code. J'ai oublié de le faire :
Mais bon, tu aurais dû le voir par toi-même !...
Oui désolé ces deux lignes sont à supprimer dans le code. J'ai oublié de le faire :
Worksheets("majamazonFR").Paste Worksheets("EXPORT").Activate
Mais bon, tu aurais dû le voir par toi-même !...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Hello ThauTheme,
Je ne comprends pas, ce matin cela ne fonctionne plus :
J'ai l'erreur "Impossible de définir la propriété SpecialCells de la classe Range"
à cette ligne là :
rng.Columns(5).SpecialCells(xlCellTypeBlanks) = "11"
???
Je ne comprends pas, ce matin cela ne fonctionne plus :
J'ai l'erreur "Impossible de définir la propriété SpecialCells de la classe Range"
à cette ligne là :
rng.Columns(5).SpecialCells(xlCellTypeBlanks) = "11"
???