Problème avec la variable "Range" dans VBA

Résolu
aurore52230 Messages postés 30 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 21 février 2017 - 22 nov. 2011 à 15:27
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 28 nov. 2011 à 14:08
Bonjour,
Je me permets de vous envoyer ces codes (voir ci-dessous), car un message d'erreur (Erreur d'exécution '1004': La méthode 'Range' de l'objet '_Gobal' a échoué) apparait lors de sa mise en marche (Voir ligne surligné en jaune):

Sub MiseAJour()

Lignebase = 1
ColonneBase = 33
TotalLigneBase = 0
LigneCapteurs = 1
ColonneCapteurs = 5
Total = 9
MonCopier(0) = 63
MonCopier(1) = 68
MonCopier(2) = 69
MonCopier(3) = 215
MonCopier(4) = 218
MonCopier(5) = 221
MonCopier(6) = 231
MonCopier(7) = 236
MonCopier(8) = 46
MonCopier(9) = 48

MonColler(0) = 6
MonColler(1) = 7
MonColler(2) = 8
MonColler(3) = 9
MonColler(4) = 10
MonColler(5) = 11
MonColler(6) = 12
MonColler(7) = 13
MonColler(8) = 14
MonColler(9) = 15


'Nombre de ligne Base Amélie
Do While Sheets(1).Cells(Lignebase, ColonneBase) <> ""
Lignebase = Lignebase + 1
Loop
TotalLigneBase = Lignebase - 1
CompteBase = Lignebase - 1
TotalLigneBase = Lignebase - 1

'Nombre de ligne Capteurs Dispo.
Do While Sheets(2).Cells(LigneCapteurs, ColonneCapteurs) <> ""
LigneCapteurs = LigneCapteurs + 1
Loop
TotalLigneCapteur = LigneCapteurs
CompteCapteur = LigneCapteurs

Sheets(1).Select
Do While TotalLigneBase <> 0
Do While TotalLigneCapteur <> 0
If Sheets(1).Cells(TotalLigneBase, ColonneBase).Value <> Sheets(2).Cells(TotalLigneCapteur, ColonneCapteurs).Value Then
TotalLigneCapteur = TotalLigneCapteur - 1
Else
Do While Total <> 0
If Sheets(1).Cells(TotalLigneBase, MonCopier(Total)).Value = Sheets(2).Cells(TotalLigneCapteur, MonColler(Total)).Value Then
Total = Total - 1
ElseIf Sheets(1).Cells(TotalLigneBase, MonCopier(Total)).Value <> Sheets(2).Cells(TotalLigneCapteur, MonColler(Total)).Value Then
If Sheets(1).Cells(TotalLigneBase, MonCopier(Total)).Value <> "" Then
Sheets(1).Select
Cells(TotalLigneBase, MonCopier(Total)).Select
Selection.Cut
Sheets(2).Select
Cells(TotalLigneCapteur, MonColler(Total)).Select
ActiveSheet.Paste
With Selection.Interior
.ColorIndex = 41
.Pattern = xlSolid
End With
Cells(TotalLigneCapteur, 16) = Date
Total = Total - 1
Else
Total = Total - 1
End If
End If
Loop
Sheets(1).Select
Rows(TotalLigneBase).Select
Selection.Delete Shift:=xlUp
Total = 9
End If
Loop
Do While Total <> 0
Sheets(1).Activate
ValeurCopier = MonCopier(Total)
Range(Cells(TotalLigneBase, ValeurCopier)).Select
Sheets(2).Activate
ValeurColler = MonColler(Total)
Range(Cells(CompteCapteur, ValeurColler)).Select
ActiveSheet.Paste
Total = Total - 1

Loop
Sheets(1).Select
Rows(TotalLigneBase).Select
Selection.Delete Shift:=xlUp
Total = 9
CompteCapteur = CompteCapteur + 1
TotalLigneBase = TotalLigneBase - 1
Loop
End Sub


Ces codes me servent à allé chercher des données dans une base et de copier certaine cellules dans une autre base.
Dans l'attente de vos réponses ou questions complémentaires
Cordialement
Aurore
 

3 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
22 nov. 2011 à 16:32
Bonjour,


-Tu as présenté un code non indenté et non mis entre balises code (et c'est très désagréable). Je te prie de bien vouloir y penser dans tes prochains messages.

-
Range(Cells(TotalLigneBase, ValeurCopier))

ne saurait exprimer une plage (en l'occurence, une seule cellule)
Cells(totallignebase, valeurcopier)

oui

- tu as posé une question. Je m'y suis limité. Mais ton code aurait besoin d'être entièrement revu ici et là .
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
aurore52230 Messages postés 30 Date d'inscription mercredi 13 février 2008 Statut Membre Dernière intervention 21 février 2017
28 nov. 2011 à 12:55
"Entièrement revu ici et là?"
Je veux bien savoir où!
Merci d'avance.

 
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
28 nov. 2011 à 14:08
Je veux bien savoir où!

Un peu partout, à commencer par cette "floraison" de Select, Copy, Pasre et tutti quanti

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous