Microsoft 365 excel vba

PHV62

XLDnaute Nouveau
L = Sheets("VIART").Range("a65536").End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE

Range("B" & L).Value = TextBox25
Range("A" & L).Value = TextBox25
Range("F" & L).Value = TextBox26
Range("G" & L).Value = TextBox27

DernLig = Range("C" & Rows.Count).End(xlUp).Row + 1
num = Range("C" & Rows.Count).End(xlUp)
Range("C" & DernLig).Value = num + 1
bonjour voici ma formule elle fonctionne si je rempli les textbox
par contre si je ne remplie pas les textbox elle a ajout quand même num+1 alors comment faire pour que ca ne compte pas

merci pour votre réponse
phv62
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour PHV,

On incrémente si au moins une Textbox est non vide :
VB:
If Range("B" & L) <> "" Or Range("A" & L) <> "" Or Range("F" & L) <> "" Or Range("G" & L) <> "" Then
    Range("C" & DernLig).Value = num + 1
End If

On incrémente si aucune Textbox n'est vide :
Code:
If Range("B" & L) <> "" And Range("A" & L) <> "" And Range("F" & L) <> "" And Range("G" & L) <> "" Then
    Range("C" & DernLig).Value = num + 1
End If
 

PHV62

XLDnaute Nouveau
ja i essaye les 2 versions marche pas comme je voudrais
quand je remplie le textbox nom seulement et que je valide avec bouton vert il rajoute 1 ligne + 2 ligne dans la colonne C
si je remplie le nom + nom 1 enfant il rajoute bien les 2 ligne + 1 ligne colonne C

ce que je voudrais c qu il ne remplie que les ligne correspondant au textbox
nom 1 ligne
nom + 1 enfant 2 ligne et ainsi de suite mais pas rajouter dans la colonne C si il n y a rien dans les autre
 

Pièces jointes

  • GENEA test.xlsm
    562.8 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour PHV,
Ca, c'est du Userform ! :)
Je ne suis pas vraiment sur d'avoir tout suivi, alors j'ai fait d'après ce que j'ai compris.
Mon code commence par "Addon Sylvanu", faites Ctrl F pour le trouver car c'est un peu ... fouillis.
J'ai rajouté :
VB:
' Addon Sylvanu
Private Sub CommandButton3_Click()

Dim L%, N%, DernLig%, num%
Sheets("FEUIL1").Activate

If MsgBox("Etes-vous certain de vouloir INSERER ce nouveau contact ?", vbYesNo, "Demande de confirmation") = vbNo Then Exit Sub 'On sort si réponse NON

L = Sheets("FEUIL1").Range("a65536").End(xlUp).Row + 1 'Permet de se positionner sur la dernière ligne de tableau NON VIDE
If TextBox1 <> "" Then                                  'Si il y a un nom
    ' On range les infos avec le Nom
    Range("A" & L).Value = TextBox1.Text
    Range("B" & L).Value = TextBox1.Text
    DernLig = Range("C" & Rows.Count).End(xlUp).Row + 1
    num = Range("C" & Rows.Count).End(xlUp)
    Range("C" & DernLig).Value = num + 1
    ' On regarde chaque Textbox des enfants
    For N = 25 To 55 Step 5                             ' N : N° du textbox, de Textbox25 à Textbox55 de 5 en 5
        If Controls("TextBox" & N).Text <> "" Then      'Si la textbox n'est pas vide
            L = Sheets("FEUIL1").Range("a65536").End(xlUp).Row + 1
            Range("A" & L).Value = Controls("TextBox" & N).Text
            Range("B" & L).Value = Controls("TextBox" & N).Text
            ' Autre rangement à faire si besoin
            DernLig = Range("C" & Rows.Count).End(xlUp).Row + 1
            num = Range("C" & Rows.Count).End(xlUp)
            Range("C" & DernLig).Value = num + 1
            TransfertData (L)
        End If
    Next N
End If
End Sub
Quand on entre un Nom et 7 enfants, il insère bien les bonnes données au bon endroit ( enfin je pense ).
Si un nom est absent il passe au suivant sans rien faire.
Pour la partie sans fin ...
Code:
Range("F" & L).Value = TextBox5
Range("G" & L).Value = TextBox6
...
...
Range("DG" & L).Value = TextBox110
Range("DH" & L).Value = TextBox111
Je l'ai remplacé par :
Code:
Sub TransfertData(L)
Dim i%
With Sheets("FEUIL1")
    L = .Range("a65536").End(xlUp).Row + 1
    For i = 5 To 111                        ' Transfert de TextBox(i) dans Cellule(i+1,L).
        .Cells(i + 1, L) = Controls("TextBox" & i).Text
    Next i
End With
End Sub
'-----------------------------------------------------
Ce qui est plus simple.
Le fait de passer par une Sub permet d'aérer le code et le rendre plus lisible.
Donc à voir si ça fait à peu près ce que vous voulez, mais le code est simple à reprendre. C'est une bonne base je pense.
 

Pièces jointes

  • GENEA test (V2).xlsm
    599.4 KB · Affichages: 5

PHV62

XLDnaute Nouveau
bonjour je vous remercie pour votre réponse malheureusement ca ne marche pas bien on arrive bien remplir les colonne A et B par contre dans les autre colonne tout est un peu mélangé
j ai continue a chercher modifie ce que vous proposé mais la je bloc je rempli bien les cellules mais je m aperçois que les cellules F et G ce remplisse uniquement avec les textbox 31 et 32 et ne marquant pas les textbox 26 27 je joins le fichier pour que vous puissiez voir
encore merci
phv
 

Pièces jointes

  • GENEA test 10.xlsm
    562.8 KB · Affichages: 8

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour PHV,
Désolé chez moi ça marche.
En F on met Date de naissance textbox5
En G on met Ville de naissance textbox6
En AF on met Date de naissance2 textbox31
En AG on met Ville de naissance2 textbox32
J'ai vérifié plusieurs fois, ça marche dans tous les cas sur ce point avec votre PJ.
 

PHV62

XLDnaute Nouveau
sur le fichier que j ai mis on peut remarquer que les dates de naissances du rxtbox 26 ET LA VILLE du textbox 27 ne correspondent pas a la valeur ecrit dans les textbox elle corresponde au valeurs mise dans les textbox 31 et 32
sur le fichier que j ai mis on peut remarquer que les dates de naissances du rxtbox 26 ET LA VILLE du textbox 27 ne correspondent pas a la valeur ecrit dans les textbox elle corresponde au valeurs mise dans les textbox 31 et 32
OUI LES VALEUR 5 et 6 sont bonnes mais pas les 25et26 quand on met deux enfants c la que ca ne marche pas
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
avec les textbox 31 et 32 et ne marquant pas les textbox 26 27
Donc ce n'est plus 31,32,26,27 mais 5,6,25,26. :eek: Difficile de vous suivre.

J'ai mis 3 enfants avec NOM1,2,3 et j'ai bien Enfant1 en Z , Enfant2 en AE et enfant3 en AJ.

Si c'est faux, il vous faut reprendre les affectations.
Cela veut dire que dans votre liste certaines affectations sont fausses.
Mais vous êtes le seul à pouvoir corriger en fonction de ce que vous attendez.

Pour moi ce ne sont que des TextBox sans signification avec transfert dans un tableau.:)
 

PHV62

XLDnaute Nouveau
bonsoir oui vous avez raison quand je rempli le formulaire tous les enregistrement de 1 a 111 vont sur la meme ligne ca ok ca marche

moi ce que je veux en plus c que les enfant leur date de naissance et la ville s ajoute sur une ligne en dessous

la rextbox 25 a 90 dans colonne A et B qui correspond a:
For N = 25 To 90 Step 5 ' N : N° du textbox, de Textbox25 à Textbox90 de 5 en 5
If Controls("TextBox" & N).Text <> "" Then 'Si la textbox n'est pas vide
L = Sheets("FEUIL1").Range("A65536").End(xlUp).Row + 1
Range("A" & L).Value = Controls("TextBox" & N).Text
Range("B" & L).Value = Controls("TextBox" & N).Text
si il y a un enfant cela rajoutera 1 ligne

que la date de naissance de l enfant1 ce rajoutent dans la ligne qui correspond a enfant1 en colonne F
que les villes de naissance de Lenfant 1 ce rajoutent dans la ligne qui correspond a l enfant 1 en colonne G

si il y a un deuxième enfant même Facon on rajout une ligne avec nom en A et B date en F ville en G voila pouquoi j avais essaye cela:
For A = 26 To 91 Step 5

If Controls("TextBox" & A).Text <> "" Then
' L = Sheets("FEUIL1").Range("F65536").End(xlUp).Row + 1
Range("F" & L).Value = Controls("TextBox" & A).Text
End If
Next A


For B = 27 To 92 Step 5
If Controls("TextBox" & B).Text <> "" Then
' L = Sheets("FEUIL1").Range("G65536").End(xlUp).Row + 1
Range("G" & L).Value = Controls("TextBox" & B).Text

End If
Next B
si je ne met pas les apostrophe dans for A et B devant L=Sheets il remplie bien les cellules mais 2 fois
si je met l apostrophe il remplie les cellule uniquement avec les infos du 2 enfants regarder dans la FEUIL2 j ai mis un tableau explicatif

merci encore une fois si vous ne pouvez pas je laisserai tombé
cordialement
phv
 

Pièces jointes

  • GENEA test 10.xlsm
    560.9 KB · Affichages: 3

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
284 862
Messages
1 863 695
Membres
155 617
dernier inscrit
MoriSI
Haut Bas