Boucle formulaire excel

Katou1604

XLDnaute Nouveau
Bonjour à toutes et à tous.

Je suis en train de développer un petit programme de gestion d'une base de données.
Je suis novice en VBA et souhaiterais un petit peu d'aide sur une boucle que je n'arrive pas à faire[/B].

Comment puis-je adapter les codes ci-dessous pour que ceux-ci s'éxécutent sur toute ma colonne (ceux-ci fonctionnent très bien... mais sur une seule cellule de ma colonne)?

Je souhaiterais que le calcul soit effectué sur TOUTES les cellules de ma colonne.

Ce que ces codes me permettent de faire : calcul de la différence en nombre de jours entre deux dates (=2 TextBox) et répercussion du résultat (= 1 TextBox).
Lorsque je change une date dans mes TextBox le résultat est automatiquement recalculé.


Dans mon formulaire :

Dans "Microsoft Excel Objets" --> feuil1 (TABLEAU DE BORD)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MaPlage As Range
Set MaPlage = Application.Intersect(Target, Application.Union(Range("ET223:EU223"), Range("FK223")))
If Not MaPlage Is Nothing Then
TDB.NBJOURRETOURBALMA.Value = Range("EV223")
End If
End Sub



Dans "Feuilles" --> TDB

Private Sub UserForm_Initialize()
RECEPTION_BALMA.ControlSource = "ET223"
RETOUR_BALMA.ControlSource = "EU223"
With Worksheets("TABLEAU DE BORD")
Range("EV223").Formula = .Range("FK223")
Range("EV223").Value = .Range("EV223").Value
End With
NBJOURRETOURBALMA.Value = Range("EV223")
End Sub


J'espère avoir été suffisamment explicite.

Avec tous mes remerciements pour votre aide.
 

Katou1604

XLDnaute Nouveau
Re : Boucle formulaire excel

Merci beaucoup de me répondre aussi rapidement... un vrai bonheur !

Je passe des heures et des heures à travailler sur ce formulaire et je n'ai pas encore bien intégré les boucles.

Je joins un exemple de mon fichier ; l'original étant très lourd...
j'espère très sincèrement que celui-ci fera l'affaire.

Une fois la boucle réalisée sur mes trois 1ères colonnes.... je serai certainement en mesure de la développer pour le reste de mon formulaire.

Un très très très grand merci à vous.... car là, je désespère un peu.
A défaut de trouver la solution, je peux toujours copier mes codes 10 000 fois (10 000 lignes), mais cela ne me semble pas du tout être la bonne solution sachant qu'une boucle est possible !.

Merci, merci et encore merci de votre aide.
 

Pièces jointes

  • Exemple mon TDB.xlsx
    49.8 KB · Affichages: 44

Staple1600

XLDnaute Barbatruc
Re : Boucle formulaire excel

Re

Tu te répètes (lol) ;)
On le sait que tu es sous Excel 2010 ;)

Très bien. Donc tu peux joindre un *.xslm.
(voir mon message précédent, et accessoirement tu peux me dire Bonjour ...)
 
Dernière édition:

Katou1604

XLDnaute Nouveau
Re : Boucle formulaire excel

Oui, tu as absolument raison... avec toutes mes excuses.
.... la fatigue aidant... 2 heures de sommeil par nuit en ce moment, j'ai omis les règles de courtoisie... Je suis impardonnable !!!

Donc, un vrai BONJOUR s'impose.

J'ai joins un exemple de mon fichier.... si celui-ci peut faire l'affaire.

Et encore.... un très grand MERCI pour votre réactivité.
 

Staple1600

XLDnaute Barbatruc
Re : Boucle formulaire excel

Re


O la fatigue est grande qu'elle te brouille les yeux mieux que les oeufs ;)

Relis mon message de 13h39 et focalises toi sur ces 4 lettres xslm.

Prends alors un grand coup de respire, finis ton thé, ouvres ta fenêtre, inspires 27 fois et joins enfin ce fichier xlsm qui aura enfin tout ce qu'il faut inside ;)

EDITIONI: Damned! Toute cette belle pose rédigée en vain!
Tu pouvais pas attendre 13h54 pour joindre ton xlsm!
J'ai l'air malin moi maintenant avec tes yeux et mes oeufs !

EDITIONII: Et il est où ton code VBA dans ta dernière PJ?
Et quand tu parles de formulaire, tu parles pas d'userform ?
Ah bah si, je reconnais la grille d'un userform dans la belle image
Pas la queue d'un userform dans le projet VBA
C'est normal il n'y pas de projet VBA
Allo Houston ! Contacter Vladivostok on a un gros problème ;)
 
Dernière édition:

Katou1604

XLDnaute Nouveau
Re : Boucle formulaire excel

Re-bonjour.

Je vous joins mon TDB plus complet (je n'ai laissé que ce qui concerne ma demande car sinon impossible d'envoyer le fichier).

Surtout, on ne rigole pas.

Je n'ai strictement aucune connaissance ni formation en VBA ; c'est donc mon tout 1er projet.
J'ai fait ce que j'ai pu... et, ça fonctionne.


Encore merci pour votre aide.
 

Pièces jointes

  • TDB Exemple bis .zip
    286.6 KB · Affichages: 33

Katou1604

XLDnaute Nouveau
Re : Boucle formulaire excel

.... Pour compléter mon message précédent....

Lorsque je dis que cela fonctionne, c'est SANS la boucle que je n'arrive pas à faire bien entendu.

Je ne pourrai que remercier au centuple... pour ne pas dire plus, celui ou celle ou ceux et celles qui m'enlèveront cette grosse épine du pied !!!

Merci beaucoup.
 

Staple1600

XLDnaute Barbatruc
Re : Boucle formulaire excel

Re

Madame Katia B.
On voit déjà plus clair avec cette PJ
Mais peux-tu encore préciser ceci
Je souhaiterais que le calcul soit effectué sur TOUTES les cellules de ma colonne.
Quelle colonne et quels calculs?

EDITION: Voici un exemple pour boucler sur tes TextBox de la page 2 de ton MultiPage
En espérant que cela t'inspire
NB: J'ai ajouté un CommandButton sur cette page 2, pour faire ce test de boucle.
Code:
Private Sub CommandButton1_Click()
Dim ctrl As Control, j, stt$
j = 1
For Each ctrl In MultiPage1.Pages(1).Controls
If TypeOf ctrl Is MSForms.TextBox Then
stt = stt & ctrl.Name & ": " & j & vbCrLf  'pour test
j = j + 1
End If
Next ctrl
MsgBox stt, vbInformation, j & " textbox trouvés"
End Sub
 
Dernière édition:

Katou1604

XLDnaute Nouveau
Re : Boucle formulaire excel

Merci beaucoup. Je vais tester.

Pour répondre à la question concernant :
"Je souhaiterais que le calcul soit effectué sur TOUTES les cellules de ma colonne".

Le calcul doit s'effectuer sur TOUTES les cellules de la colonne EV.

Je calcule une différence entre deux dates (EU - EV)
Je fais référence à la cellule FK2 ( dans laquelle se trouve la formule "en clair" : = UE2 - UT2) pour ce calcul.

Et, hop le tour est joué..... MAIS SANS BOUCLE !


Dans "Feuilles" --> TDB

Private Sub UserForm_Initialize()
RECEPTION_BALMA.ControlSource = "ET2"
RETOUR_BALMA.ControlSource = "EU2"
With Worksheets("TABLEAU DE BORD")
Range("EV2").Formula = .Range("FK2")
Range("EV2").Value = .Range("EV2").Value
End With
NBJOURRETOURBALMA.Value = Range("EV2")
End Sub



Dans mon formulaire :

Dans "Microsoft Excel Objets" --> feuil1 (TABLEAU DE BORD)

Private Sub Worksheet_Change(ByVal Target As Range)
Dim MaPlage As Range
Set MaPlage = Application.Intersect(Target, Application.Union(Range("ET2:EU2"), Range("FK2")))
If Not MaPlage Is Nothing Then
TDB.NBJOURRETOURBALMA.Value = Range("EV2")
End If
End Sub


Ceci me permet de faire le calcul directement dans ma TextBox sans créer de bouton « calculer » par exemple. Dès que je change une des deux dates, le calcul se fait automatiquement dans ma TextBox.... ça c'est top.


Ai-je répondu à ta question ?
Est-ce plus claire ?

Merci à toi.
 

Katou1604

XLDnaute Nouveau
Re : Boucle formulaire excel

Staple1600,

J'ai testé ton code... et, ça m'a donné plein d'autres idées pour mon formulaire.

Maintenant, cela ne m'inspire pas plus par rapport à ma demande initiale ; je ne suis malheureusement pas encore assez expérimentée. Il va sérieusement falloir que je prenne des cours en VBA. Cela ne me fera pas de mal.

Merci bp.
 

Statistiques des forums

Discussions
312 412
Messages
2 088 195
Membres
103 763
dernier inscrit
p.michaux