VBA Excel : problème de définition de cellule

Anonyme
2023-07-24T05:09:42+00:00

Bonjour à tous,

J'essaie d'écrire une ligne sur trois à partir de la cellule target. Mais si j'arrive bien à écrire dans la première ligne, je n'arrive pas à incrémenter les lignes suivantes. le code actuel est du genre :

Si je mets :

Set macellule = target

Macellule.value = index

Ça marche.

Si je mets :

Dim lignetarget As Integer

Dim colonnetarget As Integer

lignetarget = target.Row

colonnetarget = target.Column

Set macellule = Range(colonnetarget & lignetarget)

Macellule.value = index

Ça ne marche pas

Et il ne semble pas possible d'incrémenter target.row

Avez-vous une idée ?

Merci d'avance

Cordialement, Jean-Pierre

Microsoft 365 et Office | Excel | Pour la maison | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

Réponse acceptée par l’auteur de la question

DanielCo 107.7K Points de réputation
2023-07-24T05:59:30+00:00

Bonjour,

Mets :

Set Macellule = Cells(lignetarget, colonnetarget)
Macellule.Value = Index

Daniel

Cette réponse a-t-elle été utile ?

0 commentaires Aucun commentaire

3 réponses supplémentaires

  1. Anonyme
    2023-07-24T15:49:45+00:00

    Merci à tous

    mieux que tchatgpt !!!

    Encore merci

    Cordialement Jean-Pierre

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. Hecatonchire 53,870 Points de réputation Modérateur bénévole
    2023-07-24T08:59:55+00:00

    Bonjour,

    target.Column renvoie une valeur numérique de type Long.

    Exemple :

    Avec Target en B3 => Line 3 / colonne 2 donc colonnetarget = 2 et lignetarget = 3

    Range(colonnetarget & lignetarget) nous donne Range ("23") quine correspond à rien et non Range("B3")

    D'où l'erreur et la proposition de Daniel Chr(colonnetarget + 64) pour convertir le 2 de mon exemple en B afin d'avoir Range ("B3")

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2023-07-24T05:56:34+00:00

    Avec des données colonne et ligne, tu devrais plutôt utiliser Cells et écrire ta ligne :

    Set Macellule = Cells(colonnetarget & "," & lignetarget)

    Ou passer par une valeur intermédiaire et transformer la valeur en chaîne :

    colonnetargetS = Chr(colonnetarget + 64)
    Set Macellule = Range(colonnetargetS & lignetarget)

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire