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

XL 2016 Bug macro sur boucle FOR EACH depuis MAJ Office

samimi94

XLDnaute Occasionnel
Bonjour le forum,

Je sollicite de nouveau votre aide suite à plusieurs recherches infructueuses.

Je rencontre un problème d’exécution d'une macro sous 2016 (pack 365) depuis la mise à jour du pack Office cette semaine.

L’exécution "pas à pas" semble indiquer que le bug se produit sur deux boucles :

Code:
 Dim x As Range
    For Each x In Selection
        x = suppAccent(x.Value)
    Next x

et

Code:
Set Plage = Intersect(Selection, ActiveSheet.UsedRange)
If Plage Is Nothing Then Exit Sub
For Each Cel In Plage
    Cel = UCase(Cel)
Next Cel

Ce problème a été décelé uniquement sous la version 2016 (365), or sur la version 2016 PC même après MAJ la macro fonctionne correctement.

En espérant que cette erreur peut-être corrigée par une simple modification de code.

Merci à tous pour votre aide.

Samimi94
 

samimi94

XLDnaute Occasionnel
Staple 1600,

J'ai fait un fichier sans mettre un exemple de CP commençant par zéro, désolée.
Voici avec un enregistrement en plus qui tient compte de ce cas de figure.

Merci.
Samimi94
 

Pièces jointes

  • test.xlsx
    11.3 KB · Affichages: 33

Staple1600

XLDnaute Barbatruc
Re

@samimi94
Il manque s(25)
Car tes colonnes vont jusqu'à la lettre Z
Tu peux revérifier et ajouter ce qui manque.

Ci-dessous petite macro pour illustrer mon propos
VB:
Sub TEST_COL()
Dim vArr(), i&, s_Test$
ReDim vArr(25)
vArr = Array(8, 1, 6, 15, 9, 2, 10, 32, 32, 32, 10, 27, 2, 2, 30, 25, 12, 8, 32, 32, 32, 10, 27, 2, 59)
For i = LBound(vArr) To UBound(vArr)
s_Test = s_Test & i & "| " & Cells(1, i + 1).Address(0, 0) & "| " & vArr(i) & vbCrLf
Next
MsgBox s_Test, vbInformation, "TEST"
End Sub
 

samimi94

XLDnaute Occasionnel
Staple 1600,

En effet j'ai zappé une des colonnes Commentaires dans le formatage.
Merci de l'avoir repéré.

Voici la correction :

s(0) = 8
s(1) = 1
s(2) = 6
s(3) = 15
s(4) = 9
s(5) = 2
s(6) = 10
s(7) = 32
s(8) = 32
s(9) = 32
s(10) = 10
s(11) = 27
s(12) = 2
s(13) = 2
s(14) = 30
s(15) = 30
s(16) = 25
s(17) = 12
s(18) = 8
s(19) = 32
s(20) = 32
s(21) = 32
s(22) = 10
s(23) = 27
s(24) = 2
s(25) = 59

Merci.
Samimi94.
 

samimi94

XLDnaute Occasionnel
Staple 1600,

Merci pour le temps que tu passes sur mon problème, j'ai pris une bonne partie de ton WE.
J'ai testé le code, le résultat sur les formats est correct et par conséquent plus de perte des 0 aux codes postaux, cependant, la longueur de champ n'est plus respectée dans le fichier texte généré.

La colonne B par exemple doit avoir 1 digit en longueur de champ alors que l'on a un espace avec l'information de la colonne C.
La ligne d'entête quant à elle, n'est plus supprimée.

Merci.
Samimi94.
 

Pièces jointes

  • test.xlsm
    18 KB · Affichages: 26

Staple1600

XLDnaute Barbatruc
Re,

@samimi94
Joins deux fichiers
1) 1 fichier Excel avec 30 lignes remplies comme sur un fichier original (mais avec des données bidons)
2) 1 fichier Texte qui doit être le résultat à obtenir.

NB: Je ne fais pas qu'être devant mon PC durant ce week-end frisquet.
Je vaque à d'autres occupations.
Actuellement, je suis en train de préparer ma soupe pour ce soir
Zippes ces 2 fichiers et joins le *.zip obtenu dans la discussion.
 

samimi94

XLDnaute Occasionnel
Staple 1600,

Ce n'est pas bon. Les longueurs de champs de ne sont pas respectées et des lignes vides se sont intégrées dans le fichier texte à la fin.
La dernière ligne du fichier texte doit être la dernière ligne du fichier excel qui possède des valeurs.

Voici en PJ la différence entre les deux résultats.

Merci.
Samimi94.
 

Pièces jointes

  • Resultat.jpg
    385.5 KB · Affichages: 49

samimi94

XLDnaute Occasionnel
Staple 1600,

C'est déjà beaucoup ce que tu m'as apporté et je t'en remercie grandement.
Je n'aurai jamais pensé avoir une solution avec cette mise à jour, je me voyais déjà abandonner mon fichier.

Merci pour tout ce que tu m'as apporté et appris au passage, ce fut très constructif.

Passes une bonne soirée.

Samimi94.
 

samimi94

XLDnaute Occasionnel
Staple 1600,

Oui. Je viens de revérifier, je retrouve tout. Certaines colonnes ne sont pas complétées mais je les retrouve bien les différentes colonnes quand je compte le nombre de caractères.

Samimi94
 

Staple1600

XLDnaute Barbatruc
Bonjour le fil, le forum

@samimi94
Une dernière livraison.

Maintenant, j'ai épuisé mon stock de neurones et fini de passer mes archives VBA en revue.

J'espère que d'autres ici prendront la suite pour finir par solutionner cette affaire. (*)

*: Mais j'en doute vu que depuis 3 pages, je suis comme Matt Damon :
" Seul sur ce fil"
 

Pièces jointes

  • CodeVBA_V5.txt
    5.3 KB · Affichages: 26

Discussions similaires

Réponses
2
Affichages
320
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…