Correction macro Excel

Fermé
Utilisateur anonyme - 24 juin 2010 à 10:16
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 24 juin 2010 à 14:24
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 24/06/2010 à 10:30
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
24 juin 2010 à 14:03
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 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 7 249
Modifié par eriiic le 24/06/2010 à 14:22
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
24 juin 2010 à 14:24
Ok, désolé mais là, je ne vois pas...
0