[Excel][VBA] comment copier...

hello, comment copier (sous forme de macro) une donnée- situé ds une cellule (tjrs la meme)- dans la 1ere cellule vide d'une colonne ou existe déja une serie de données.

Ca va en faire marrer bcp, mais vba et moi ...
Merci à toutes et tous

4 réponses

  1. Pour attribuer le contenu d'une cellule à une autre tu fais :

    Cells(ligneDestination, colonneDestination) = Cells(ligneSource, colonneSource)


    Ceci attribue le contenu de la cellule avec les coordonées ligneSource et colonneSource à la cellule de destination.

    Après du garde les variables sources et tu modifies celles de destinations pour copier la même valeur dans plusieurs cellules.

    Plus ça rate, plus on a de chances que ça marche.
    0
    1. merci zagor mais je pense pas que ce soit "aussi compliqué", imaginons qu'en A1 j'ai un chiffre qui change de temps en temps , et quand il change je veut que en actionant ma macro ce chiffre soit mis ds une colonne a la suite d' autres chiffres

      Merci en tt cas
      0
      1. Salut,

        Essaie ça :

        Valeur = Range("A1").Value

        ' si colonne où stocker la valeur = C
        If Range("C1").Value= "" Then
        Range("C1").Value = Valeur
        Else
        If Range("C2").Value = "" Then
        Range("C2").Value = Valeur
        Else
        Range("C1").End(xldown).Offset(1,0).Value = Valeur
        Endif
        Endif

        :-)

        Philippe.
        0
        1. Merci philippe , qd je lance la macro , j'ai un message qui bogge sur end if et qui dit qu'il attend "end sub" et qd je change en end sub il dit "erreur de compilation bloc If sans End If" pour moi c'est du mandarin doublé de cantonnais ....
          0
        2. @gillesc'est End If, pas Endif.
          Désolé...

          Philippe.
          0
      2. la procédure complète :

        Sub Test()
        Dim Valeur As String

        Valeur = Range("A1").Value

        ' si colonne où stocker la valeur = C
        If Range("C1").Value = "" Then
        Range("C1").Value = Valeur
        Else
        If Range("C2").Value = "" Then
        Range("C2").Value = Valeur
        Else
        Range("C1").End(xlDown).Offset(1, 0).Value = Valeur
        End If
        End If
        End Sub

        J'ai testé. Ca marche!
        0