Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Aide tableau excel VBA

NicolasKH

XLDnaute Junior
Bonjours les amis pro d'excel
je viens vous demandez votre aide sur mon probleme, j'une feuille avec plusieurs tableau, dans mon userform je dois renseigner des donnes dans chaque tableau avec mon userform mais quand je fais un test ca me donne une erreur d'execution 424

voici mon code
Private Sub CbtValider_Click()
'On cherche la prochaine ligne vide de la source
Feuil1.Activate
Feuil1.Range("A1048576").End(xlUp).Offset(1, 0).Select
' On effecte les donnees du formulaire dans la source
ActiveCell = ActiveCell.Offset(-1, 0) + 1
ActiveCell.Offset(0, 1) = Me.TxtTravaux
ActiveCell.Offset(0, 3) = Me.TxtLieux
ActiveCell.Offset(0, 5) = Me.TxtChefProjet
ActiveCell.Offset(0, 7) = Me.TxtChefChantier
ActiveCell.Offset(0, 16) = Me.TxtPretMateriel
ActiveCell.Offset(0, 18) = Me.TxtOuvrier
ActiveCell.Offset(0, 20) = Me.TxtDesignation
End Sub

pouviez vous m'expliquer le probleme s'il vous plait merci
 

Pièces jointes

  • aide.xlsm
    17.8 KB · Affichages: 5

cp4

XLDnaute Barbatruc
Bonjour,
Il n'y a ni userform ni code dans ton fichier joint.
 

NicolasKH

XLDnaute Junior
Bonjour
Je vois pas bien l'utilté...
Ci joint ma solution

A+ François
merci pour ta reponse tres rapide, j'ai fais le test et ca marche presque comme je veux, je m'explique:
dans le userform je voudrais que si je rajoute un element dans un des tableaux, que ca ne me rajoute pas de ligne dans les autres tableaux.
je ne s'est pas si je m'explique bien.

dans ta solution sa m'ajoute une ligne dans tous les tableaux
 

job75

XLDnaute Barbatruc
Bonjour NicolasKH, cp4, fanfan38,

Une autre manière :
VB:
Private Sub CbtValider_Click()
    Dim TB, T As Range, i, n&
    TB = Array(TxtTravaux, TxtLieux, TxtChefProjet, TxtChefChantier, TxtPretMateriel, TxtOuvrier, TxtDesignation)
    Set T = Range("T_travaux,T_lieux,T_chefprojet,T_chefchantier,T_pret,T_ouvrier,T_designation")
    For i = 1 To T.Areas.Count
        n = T.Areas(i).Count - (T.Areas(i).Cells(1) <> "")
        T.Areas(i).Cells(n) = TB(i - 1).Text
    Next
    Unload Me
    UserForm1.Show
End Sub
A+
 

Pièces jointes

  • aide (2).xlsm
    31.1 KB · Affichages: 9

NicolasKH

XLDnaute Junior
merci pour vos aide qui me sont tres utile car je debut dans le vba, je vais faire le test des que je rentre a la maison, une autre question pour reinitialiser le userform a chaque fois que l'on valide j'ai essayer ce code et ca ne marche pas

'Procedure permettant la remise a zero du userform
Me.CboChefProjet = ""
Me.CboChefChantier = ""
Me.CboProjet = ""
Me.CboLieux = ""
Me.CboTacheEffectuer = ""
Me.TxtDebut = ""
Me.TxtFin = ""

merci
JOB75, CP4, FANFAN38
 

NicolasKH

XLDnaute Junior
bonjour je reviens de campagne et j'ai test vos solution et c'estimpecable tous fonctionne bien, mais j'ai une autre question a vous demandez.

j.ai dans mon classeur une feuille nommee (tresorerie) et une autre (avance ouvrier), mon idee c'est que si j'insert des donnes dans mon tableau de la feuille AVANCE OUVRIER que les donnes la ligne sois copier dans la feuille TRESORERIE avec dans la colonne Designation le text AVANCE OUVRIER
 

Pièces jointes

  • Tresorerie.xlsm
    37.4 KB · Affichages: 3
Dernière édition:

Discussions similaires

Réponses
21
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…