Problème avec la variable "Range" dans VBA

Résolu
Signaler
Messages postés
30
Date d'inscription
mercredi 13 février 2008
Statut
Membre
Dernière intervention
21 février 2017
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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
Messages postés
30
Date d'inscription
mercredi 13 février 2008
Statut
Membre
Dernière intervention
21 février 2017

"Entièrement revu ici et là?"
Je veux bien savoir où!
Merci d'avance.

 
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
240
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