Correction macro Excel

Bonjour

J'ai une macro qui bizarrement marchait bien hier et aujourd'hui non. Pourtant je ne l'ai pas modifiée. Sauriez-vous me dire ce qui cloche ?

Merci d'avance

Sub Afficher_Données_Séléctionnées ()
Dim x, i As Integer
Dim Cells As Range
Dim j As Long
j = 1
Application.ScreenUpdating = False
x = Sheets(2).Range("E2").Value
With Sheets(3)
For i = 3 To Range("A65536").End(xlUp).Row
If .Cells(i, 1).Value = x Then
.Range(.Cells(i, 1), .Cells(i, 2)).Copy
Sheets(2).Select
Sheets(2).Range("B3").Offset(0, j).Select
Selection.PasteSpecial Paste:=xlPasteValues, Transpose:=True
j = j + 1
End If
Next i
End With
Application.ScreenUpdating = True
End Sub

Laure

2 réponses

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    Bonjour,

    difficile à dire sans savoir où ca plante et le message

    mais Cells est un mot réservé VBA ( cells est un objet "range") et tu n='as pas a marqué
    dim cells as range

    :-x
    1. Bonjour,

      En fait je ne reçois pas de message d'erreur.
      Là j'ai supprimé le Dim Cells as Range, mais toujours.
      Lorsque je teste cette macro sur un classeur Excel on y saisissant au hasard des données, elle marche. Mais dans mon fichier parfois oui parfois non ... c'est vraiment bizarre j'ai vérifié le format des données mais toujours rien

      Laure
      1. Contributeur
        Bonjour,

        Fais-le en pas à pas jusqu'au point ou ça ne marche pas correctement et regarde de près l'évolution des variables à ce moment là, tu devrais trouver le pourquoi.
        Par exemple :
        If .Cells(i, 1).Value = x Then
        Quelle valeur exacte a Cells(i, 1) ?
        Y'a-t'il un problème d'arrondi (ce n'est pas parce que tu lis 5.1 que la valeur est 5.1, elle peut être 5.999999999999999?
        Est-ce que ça ne serait pas une valeur en texte au lieu de numérique ?

        Par ailleurs avec :
        Dim x, i As Integer
        seul i est integer, x est variant.
        C'est peut-être ce que tu voulais mais...

        eric
      2. Contributeur
        Ok, désolé mais là, je ne vois pas...