Code vba

Résolu
Bonjour,
J'aimerais savoir, si c'est possible de faire valider des données (alimenter ma BD dans feuil excel depuis mon userform avec le bouton (VALIDER) par colonne et non pas par ligne
moi d'habitude j'utilise le code
Dim derlign As Integer
    If MsgBox("Confirmez-vous l'Ajout des Données?", vbYesNo, "confirmation") = vbYes Then
    
          derligne = Sheets("liste").Range("A254256").End(xlUp).Row + 1


Configuration: Windows / Firefox 63.0

3 réponses

  1. Modérateur
    Bonjour
    Tu veux trouver la dernière colonne au lieu de la dernière ligne ?
    Donc utilise column au lieu de row
    0
    1. merci pour ton aide , j'ai mis "column" au lieu de row mais au lieu qu'il ajoute des donnéea dans la colonne suivante il les écrase, alors que mois je souhaite qu'il alimente la colonne suivante, cordilement

      abdellah merci
      0
    2. Modérateur
      C'est normal...Il te faite faire +1
      0
    3. mais +1 se décale par ligne et non par colonne
      0
    4. voici le code du buton valider
      Private Sub CommandButton1_Click()
      Dim derligne As Integer
          If MsgBox("Confirmez-vous l'Ajout des Données?", vbYesNo, "confirmation") = vbYes Then
          
                derligne = Sheets("liste").Range("A456548").End(xlUp).Column + 2
                              
                      Cells(derligne, 1) = TextBox1.Value
                      
      
          End If
      end sub
      0
    5. Modérateur
      Cells(ligne , colonne )
      Donc..il faut placer ta variable au bon endroit...
      0
  2. oui, le 2éme code vba (der colonne) alimente ma base de donnée par le bouton valider;

    dans la colonne (a) et pour une nouvelle saisie de la valeur de la même textbox je veux qu'elle soit

    stocker dans la colonne suivante , colonne (b) ainsi de suite.
    merci pour votre aide.
    0
    1. Modérateur
      ben c'est ce que le code que je t'ai donné fait.
      Je t'ai juste mis les deux exemples Ligne et Colonne pour que tu puisses voir la différence....
      0
    2. non quand je valide il ecrase les données de la meme colonne ,en principe une nouvelle saisie stock les données dans la colonne suivante chose que ton code ne le fait pas
      0
    3. Modérateur
      Au temps pour moi...
      Derniere_Colonne =Sheets("liste").Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column
      
      0
    4. "merci pour tout, j'i un message d'erreur (erreur d'execution "9"
      l'indice n'appartien pas a la selection"
      merci encor une fois pour tonaide
      et voici le code que j'ai utiliser en cloquant sur le "buttoncommande"

      Private Sub CommandButton1_Click()

      Derniere_Colonne = Sheets("liste").Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column

      Cells(1, derColonne) = TextBox1.Value

      End Sub
      0
    5. Modérateur
      Regarde le nom de la variable derColonn ...
      ça ne correspond pas avec Derniere_Colonne
      0
  3. Modérateur
    "ça ne marche pas" .... une phrase vide de sens qui n'explique en rien en quoi cela ne "marche pas"....
    As tu corrigé le code ? As tu pensé à ajouté un +1 pour la dernière colonne ?
    Perso.. quand je teste
    Private Sub CommandButton1_Click()
    Dim derligne As Integer
        If MsgBox("Confirmez-vous l'Ajout des Données?", vbYesNo, "confirmation") = vbYes Then
            Derniere_Colonne = Sheets("liste").Cells.Find("*", Range("A1"), , , xlByColumns, xlPrevious).Column + 1
            Cells(1, Derniere_Colonne) = TextBox1.Value
        End If
    End Sub
    

    ça fait exactement ce que tu nous as demandé ....

    PS: Merci de ne plus ouvrir de doublons de discussion...
    0
    1. merci bcp, ça fonctionne et je suis vraiment désolé pour le desagrement, car j'avais un problème dans office,
      0