Correction macro Excel

Utilisateur anonyme -  
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   -
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
A voir également:

2 réponses

michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
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
0
Utilisateur anonyme
 
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
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
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
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Ok, désolé mais là, je ne vois pas...
0