VBA : Integrerer des variable en coordonée "cells" et "range&quot

EXCEL-lent Messages postés 6 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

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

    un pb (au moins) avec NumLigne
    NumLigne n'est pas initialisé donc vaut 0 et cells(0,xx) vba n'aime pas

    Cdlmnt
    0
  2. EXCEL-lent Messages postés 6 Statut Membre
     
    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
    0
  3. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Cells(32, 14) = NumLigne
    doit devenir
    NumLigne = Cells(32, 14)

    Cdlmnt
    0
    1. ccm81 Messages postés 11033 Statut Membre 2 434
       
      Et tu as le même pb ici
      Cells(NumLigne, NumColonne).Value = Chiffre
      0
    2. EXCEL-lent Messages postés 6 Statut Membre
       
      Merci !!
      Mais ce qui me bloque surtout, c'est ceci :

      Chiffre = Cells(NumLigne, NumColonne)
      0
  4. ccm81 Messages postés 11033 Statut Membre 2 434
     
    oui, si c'est Chiffre qui prend la valeur de Cells(NumLigne, NumColonne)
    donc
    Chiffre = Cells(NumLigne, NumColonne)

    Cdlmnt
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. EXCEL-lent Messages postés 6 Statut Membre
     
    ç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
    0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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 être
    Private 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
    0
    1. EXCEL-lent Messages postés 6 Statut Membre
       
      Merci beaucoup pour vos réponses!
      Cependant, Excel continue de me mettre la ligne :

      <code> Chiffre = Cells(NumLigne, NumColonne).Value <code>

      en jaune surligné.

      Si jamais, je suis sur la dernière version d'Excel.
      Je ne vous dérange pas davantage.

      Bonne soirée et merci encore !
      0
  8. ccm81 Messages postés 11033 Statut Membre 2 434
     
    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
    0