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

XL 2016 Problème sur une macro

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

robertduval

XLDnaute Junior
Bonjour j'ai une macro qui ne fonctionne plus suite à une mise a jour d'un site, y a t'il possibilité de la modifier
Merci
 

Pièces jointes

Solution
Bonjour tout le monde. 🙂
Et pour éviter le problème du Mid ( post #4 ) et en s'inspirant de Replace de Job, on arrive à :
VB:
        Ws.Cells(j, 4) = "'" & Ws.Cells(i + 3, 1) & "-" & Ws.Cells(i + 4, 1)
        Chaine = Ws.Cells(i + 5, 1) & "-" & Ws.Cells(i + 6, 1)
        Ws.Cells(j, 5) = "'" & Replace(Replace(Chaine, "(", ""), ")", "")
Bonjour robertduval,

Voyez le fichier joint et cette macro :
VB:
Sub RangeLesDonneesFlash()
Dim pas%, coldeb%, i&, lig&, col%, j&
pas = 7 'à adapter
coldeb = 2 'à adapter
With Feuil1.[A1].CurrentRegion
    For i = 1 To .Rows.Count Step pas
        lig = lig + 1
        col = coldeb
        For j = i + 1 To i + pas - 1
            .Cells(lig, col) = Replace(Replace(.Cells(j, 1), "(", ""), ")", "")
            col = col + 1
    Next j, i
    .Cells(lig + 1, coldeb).Resize(.Rows.Count - lig, pas - 1).ClearContents 'RAZ en dessous
End With
End Sub
Edit : salut M12.

A+
 

Pièces jointes

Dernière édition:
Bonjour Robertduval,
Difficile de voir d'où vient le problème puisqu'on n'a pas la structure précédente.
Une piste : Dans cette ligne Ws.Cells(j, 5) = VBA.Right(Ws.Cells(i + 4, 1), Len(Ws.Cells(i + 4, 1)) - 1) on fait référence à i+4, soit pour le premier à la chaine "1", or Len(Ws.Cells(i + 4, 1)) - 1 vaut donc 0.
J'ai donc remplacer ces deux lignes par :
Code:
        Ws.Cells(j, 4) = "'" & Ws.Cells(i + 3, 1) & "-" & Ws.Cells(i + 4, 1)
        Ws.Cells(j, 5) = "'" & Mid(Ws.Cells(i + 5, 1), 2, 1) & "-" & Mid(Ws.Cells(i + 6, 1), 2, 1)
et le code tourne.
A vérifier si c'est correct. En particulier je fait un Mid qui ne prend qu'un caractère, s'il y avait ligne 6 ou 7
"(12)" alors cela ne marcherait pas, je n'attend qu'un caractère. Sinon il faut reprendre cette ligne.
 

Pièces jointes

Bonjour Job,
La feuil2 semble montrer le résultat attendu.
PS: Désolé de n'avoir pas salué en arrivant, il y a de plus en plus de problème de refresh et de synchro sur XLD.🙁
 
Bonjour tout le monde. 🙂
Et pour éviter le problème du Mid ( post #4 ) et en s'inspirant de Replace de Job, on arrive à :
VB:
        Ws.Cells(j, 4) = "'" & Ws.Cells(i + 3, 1) & "-" & Ws.Cells(i + 4, 1)
        Chaine = Ws.Cells(i + 5, 1) & "-" & Ws.Cells(i + 6, 1)
        Ws.Cells(j, 5) = "'" & Replace(Replace(Chaine, "(", ""), ")", "")
 

Pièces jointes

Bonjour à tous M12, job75, sylvanu.
Merci à vous 3 de vous êtres penché sur mon problème sylvanu as trouvé ce que je voulais ça fonctionne j'ai juste rajouté les espaces entre les 2 chiffres du score et le -, par contre c'est quoi le Mid, pour juste comprendre en cas de plantage de la macro.
Merci encore à vous 3
 
Bonsoir,
Utilisez la macro du post #7, le MID a disparu.

MID correspond à STXT en XL. Le problème est qu'il ne prend qu'un caractère comme indiqué dans le post.
Alors qu'en utilisant le Replace ce problème n'existe pas.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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