VBA : Integrerer des variable en coordonée "cells" et "range"
EXCEL-lent
Messages postés
6
Statut
Membre
-
ccm81 Messages postés 11033 Statut Membre -
ccm81 Messages postés 11033 Statut Membre -
Bonsoir cher communauté !
Mon souhait est un système qui permet de retrouver les valeurs supérieurs à Zéro dans le tableau de droite pour les envoyer dans celui de gauche au même emplacement.
(Au départ, au lieu du Zéro, je mettais "", mais, pour le système =si(cellule>0 il me mettais vrai ... )
D'origine, c'était pour créer un résolveur de Sudoku auquel les chiffres trouvés devaient être envoyé afin de trouver les suivants.
Je pense être très proche de la fin et il me reste une dernière étape à résoudre, c'est de faire fonctionner cela :
Private Sub CommandButton1_Click()
Dim NumLigne As Integer, NumColonne As Integer, Chiffre As Integer
Cells(32, 14) = NumLigne
NumColonne = 32
Do While Cells(14, NumColonne) = "KO"
NumColonne = NumColonne + 1
Loop
Cells(NumLigne, NumColonne).Value = Chiffre
Range(Cells(NumLigne, NumColonne - 30)) = Chiffre
End Sub
Ce que le VBA refuse, c'est ça :
Cells(NumLigne, NumColonne).Value = Chiffre
Merci d'avance pour vos réponses!
7 réponses
-
Bonjour
un pb (au moins) avec NumLigne
NumLigne n'est pas initialisé donc vaut 0 et cells(0,xx) vba n'aime pas
Cdlmnt -
Bonsoir,
Merci de votre venu !
Mon souhait au sujet de NumLigne est qu'il est la valeur de Cells(32,14).
Cela n'est t'il donc pas possible ? :(
Selon vous, comment procéderiez vous ?
Cordialement -
Cells(32, 14) = NumLigne
doit devenir
NumLigne = Cells(32, 14)
Cdlmnt -
oui, si c'est Chiffre qui prend la valeur de Cells(NumLigne, NumColonne)
donc
Chiffre = Cells(NumLigne, NumColonne)
Cdlmnt -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
ça ne fonctionne pas :(
Mais de manière général, dans d'autres cas, c'est le fait de mettre des variables dans les coordonnées du " Cells " , d'où le titre de la publication :p
Cordialement -
Mais de manière général, dans d'autres cas, c'est le fait de mettre des variables dans les coordonnées du " Cells " , d'où le titre de la publication
Pas du tout, tu peux mettre des variables aussi bien dans
Cells(ligne,colonne) ligne et colonne étant des entiers
que dans
Range(colonne & ligne) colonne est une lettre et ligne un entier
Si
NumLigne prend la valeur de Cells(32,14)
et
Chiffre la valeur de Cells(NumLigne, NumColonne).Value
Ton code devrait êtrePrivate Sub CommandButton1_Click() Dim NumLigne As Integer, NumColonne As Integer, Chiffre As Integer NumLigne = Cells(32, 14) NumColonne = 32 Do While Cells(14, NumColonne) = "KO" NumColonne = NumColonne + 1 Loop Chiffre = Cells(NumLigne, NumColonne).Value Range(Cells(NumLigne, NumColonne - 30)) = Chiffre End Sub
Si ça ne donne pas le résultat souhaité c'est que le pb est ailleurs
Cdlmnt -
Quand tu es en erreur (surlignage jaune) dans l’éditeur vba, tu passes le curseur sur chacune des variables NumLigne, NumColonne et Chiffre pour voir leur valeur, ça devrait te donner une indication
Cdlmnt