Excel- instruction vba pour affichage absolu

Résolu
Bonjour,

Quelqu'un peut-il m'écrire l'instruction en VBA pour afficher un mot aux coordonnées que je veux.
Ces coordonnées sont dans des cellules connues.
je pensais que ceci marcherai mais c'est pas le cas:

Range(X,Y).value = "monmot"

SVP, aidez moi à avancer!
Merci
Configuration: Windows XP
Firefox 3.5.7

29 réponses

Résumé de la discussion

Une demande en VBA vise à afficher le mot 'monmot' à des coordonnées précises, qui sont déterminées par des cellules A1 et B1, afin de pouvoir modifier facilement la cible. La solution clé consiste à lire la ligne et la colonne à partir des cellules A1 et B1, puis d'écrire la valeur 'monmot' dans Cells(lig, col). En pratique, il s'agit de lire Range('A1').Value et Range('B1').Value puis d'utiliser Cells(lig, col).Value = 'monmot', ce qui permet d'écrire dynamiquement selon les valeurs des cellules et d'adapter la cible sans modifier le code. D'autres pistes évoquent l'utilisation de cellules nommées ou de valeurs absolues pour stabiliser le décalage, mais la solution centrée sur Range et Cells reste simple et adaptable.

Bobot (l’IA à votre service)
  1. Contributeur
    Re,
    "Oui, mais en fait j'aimerai afficher "monmot" à la ligne dont le numéro est dans la cellule [A1] par exemple
    et le numéro de colonne dans la cellule [B1] par exemple.
    Ainsi je pourrais changer comme je veux les coordonnées. "
    => résolu aux posts 8 et 10 !
    Si tu as un autre souci, merci de l'expliquer clairement ! on est là pour aider mais il faudrait qu'on comprenne ce que tu veux faire !
    1
    1. Merci à vous pour votre réponse mais je ne comprends pas la réponse?
      C'est quoi [A1]?

      merci
      0
      1. [a1]= signifie "la valeur en A1 est égale à..."
        0
        1. Salut,

          Plus exactement [A1] est l'adresse de la cellule, on peut l'écrire de plusieurs façon suivant le code utilisé
          Dans les trois codes ci-dessous, je sélectionne la cellule mais on j'aurai pu faire référence à sa valeur dans ce cas il faut remplacer .Select par = . . . . .

          Cells(1, 1).Select

          Range("A1").Select

          [A1].Select
          0
          1. Oui, mais en fait j'aimerai afficher "monmot" à la ligne dont le numéro est dans la cellule [A1] par exemple
            et le numéro de colonne dans la cellule [B1] par exemple.
            Ainsi je pourrais changer comme je veux les coordonnées.

            Merci de votre aide
            0
            1. Contributeur
              bonjour,
              lig = range("A1").value
              col = range("B1").value
              cells(lig, col).value = "monmot"

              voilà :)
              0
            2. @tompolsMerci tompols c'est exactement ce que je viens de faire je vais tester maintenant.

              Merci à tous en attendant!
              0
          2. Modérateur
            Bonjour,
            Autres possibilités (j'ai pris les cellules K1, K2 et K3 en exemple)

            [K1] = "monmot" 'écris monmot en K1
            Cells(2, 11) = "monmot" 'écris monmot en K2
            Range("K3") = "monmot" 'écris monmot en K3

            0
            1. Merci Mike 31 j'ai posté en même temps que vous, alors j'avais pas vu la réponse.

              Je vais essayer cells, j'espere que je peux changer les coordonnées par celles d'une cellule.

              Merci
              0
              1. Je crois avoir compris ce que tu demandes

                Sub Bouton1_QuandClic()

                Dim a As Integer
                a = Range("a1").Value
                b = Range("b1").Value

                Cells(a, b) = "Mon mot"

                End Sub
                0
                1. Oui c'est ça !
                  Tompols m'avait aussi compris.
                  Je suis désolé, pourtant j'ai essayé d'être clair.
                  Mes lignes d'instruction bugg alors je vais reprendre votre exemple.

                  Merci
                  0
                  1. J'ai essayé de mixer un peu vos instructions mais ça bugg!
                    l'un de vous peut-il me dire pourquoi SVP:

                    Private Sub CommandButton2_Click()
                    Cells(lg, 11) = "monmot"
                    lg = lg + 1
                    End Sub

                    la colonne ne change pas pour ce bouton donc je l'ai laissé à K.

                    Merci
                    0
                    1. Pourquoi as tu mixé? qu'est ce qui ne marchait pas avec nos instructions?
                      0
                      1. En fait , j'étais passé par le contenu des cellules pour les coordonnées, parce que je ne savais pas comment faire pour avoir des variable valable pour toute l'application. Mais dans le bouquin que j'ai il est marqué qu'il suffit de déclarer ses variable dans la zone "déclaration" en haut à droite de la fenêtre VB alors j'ai tenté ..mais ça plante. alors je vais faire marche arriere.

                        Merci
                        0
                        1. Farfadet 88, l'instruction
                          Cells(a, b) = "Mon mot" fait que ça ne fonctionne pas .

                          Je ne voit pas pourquoi, je la retourne dans tous les sens mais rien a faire ...
                          vois-tu pourquoi SVP?
                          0
                          1. n'oublie pas de mettre tout

                            Sub Bouton1_QuandClic()

                            Dim a As Integer
                            a = Range("a1").Value
                            b = Range("b1").Value

                            Cells(a, b) = "Mon mot"

                            End Sub


                            et pas seulement Cells(a, b) = "Mon mot"
                            0
                            1. Ok, j'explique:

                              Je veux lorsque je clic sur un "bouton de commande" le mot "Bat" s'affiche dans ma colonne "K" en ligne 1 par exemple.
                              Mais lorsque j'appuis encore sur ce bouton de commande le mot "Bat" doit s'afficher toujours en colonne "K" mais sur une ligne dont le numéro évolue aussi en fonction de l'appui sur un autre bouton.
                              C'est pour ça que pour l'instant j'essaye de faire évoluer la ligne à partir de la valeur d'une cellule, après j'adapterai.

                              Merci de votre compréhension et de votre aide.
                              0
                              1. Contributeur
                                re,
                                tjs pas clair : "en fonction de l'appui sur un autre bouton" => tu peux expliquer ce passage là stp ? genre si on apuie sur le bouton 2, on augmente d'une ligne.... ou autre mais "en fonction de" ne veut rien dire.....
                                0
                                1. Alors, si je clic sur le bouton 2 j'affiche le mot "salle" en colonne "L" sur la ligne en-dessous de laquelle j'ai affiché le mot "Bat".
                                  Ainsi, si je cllic sur le bouton 1 le mot "Bat" devra s'afficher toujours en colonne "K" mais à la ligne en-dessous de laquelle le mot "Salle" s'est affiché.

                                  Ainsi, seule le numéro de ligne évolu.
                                  Tout est dit maintenant, mais je pensais que ça compliquerai les choses de tout écrire en une seule fois.

                                  Merci
                                  0
                                  1. Et les valeurs présentes en A et B? Elles ne servent plus à rien?
                                    0
                                    1. Contributeur
                                      re,
                                      bon dsl mais jme pose encore plein de questions :
                                      -comment determine-t-on la premiere position pour le mot "Bat" ?
                                      - les colonnes K & L ne contiennent-elles que ces mots ?
                                      un petit fichier exemple posé ici pourrait surement aider....
                                      0
                                      • 1
                                      • 2