Compteur automatisé dans useform

moustic54

XLDnaute Occasionnel
Bonsoir

Je voudrais mettre un compteur automatique dans un useform sous la forme : 2015-XXXX
2015 étant l'année et les xxxx étant le chiffre qui s'incrément de 1 à chaque nouvel enregistrement.

Ex : 25eme enregistrement = 2015-0025
178eme enregistrement = 2015-0178

Si l'enregistrement se fait l'année suivante (soit en 2016) le compteur devra alors affiché 2016-XXXX

Quelqu'un pourrait il me dire comment faire ?
Mes connaissances en vba sont proches du degré zéro :(
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

No problemo, Martial :)

Une question sans rapport :
2 TextBox identiques (TextBoxA = TextBoxB)


Le code serait :

Private Sub TextBoxA_Change()
Dim Cel As Range, Rng As Range, i

If TextBoxA = "" Then Exit Sub
TextBoxB= TextBoxA.value
TextBoxB.enable = True

End Sub

Beaucoup d'erreurs ? :confused:
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Bonjour Yahoo,

Je reviens vers toi car j'ai des difficultés à combiner plusieurs conditions avec Si :confused:


VB:
Private Sub CheckBox1_Change()
If CheckBox1 = True Then
  'alors
  TextBox6.Enabled = True
 Else
  'sinon
  CheckBox1 = False: TextBox6 = "": TextBox6.Enabled = False
End If
End Sub

A+

Un exemple de combinaison

Si TextBox.value = "DDD" alors
TextBox1.Enabled = True
TextBox2. Enabled = True
Sinon TextBox1="" : TextBox1.Enabled = True: TextBox2="" : TextBox2.Enabled = True


Si TextBox.value = "XXX XXXc" ou "aaaa" alors
TextBox3.Enabled = True
TextBox4. Enabled = True
TextBox5.Enabled = True
TextBox6. Enabled = True
Sinon TextBox3="" : TextBox3.Enabled = True: TextBox4="" : TextBox4.Enabled = True : TextBox5="" : TextBox5.Enabled = True: TextBox6="" : TextBox6.Enabled = True

Si TextBox.Value = "JJ KKKJ " alors
TextBox4. Enabled = True
TextBox5.Enabled = True
TextBox6. Enabled = True
TextBox7.Enabled = True
TextBox8. Enabled = True
TextBox9. Enabled = True
Sinon TextBox4="" : TextBox4.Enabled = True : TextBox5="" : TextBox5.Enabled = True: TextBox6="" : TextBox6.Enabled = True : TextBox7="" : TextBox7.Enabled = True: TextBox8="" : TextBox8.Enabled = True: TextBox9="" : TextBox9.Enabled = True

Voix-tu ce que je voudrais faire ? :eek:

Merci d'avance pour ton aide
 

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Bonjour moustic,

S'il s'agit du même TextBox, ce n'est pas possible, puisque tu demandes :
Si A = 1 alors B sinon alors C, Si A = 2 alors D sinon alors E etc...

Si A n'est pas = 1 alors tu vas avoir C mais ta 2eme condition arrive Si A n'est pas = 2 alors tu vas avoir E et non C comme tu avais avec ta première condition pourtant A n'est pas = à 1.

Tu peux faire à la rigueur avec Select Case mais tu n'auras toujours plusieurs conditions si tes conditions ne sont pas vraies.

A+
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Bonsoir Yahoo

Non il ne s'agit pas de la même Textbox ... Je me suis trompé dans mon exemple :eek:

Ci-dessous rectifié

Si TextBox66.value = "DDD" alors
TextBox1.Enabled = True
TextBox2. Enabled = True
Sinon TextBox1="" : TextBox1.Enabled = True: TextBox2="" : TextBox2.Enabled = True


Si TextBox66.value = "XXX XXXc" ou "aaaa" alors
TextBox3.Enabled = True
TextBox4. Enabled = True
TextBox5.Enabled = True
TextBox6. Enabled = True
Sinon TextBox3="" : TextBox3.Enabled = True: TextBox4="" : TextBox4.Enabled = True : TextBox5="" : TextBox5.Enabled = True: TextBox6="" : TextBox6.Enabled = True

Si TextBox66.Value = "JJ KKKJ " alors
TextBox4. Enabled = True
TextBox5.Enabled = True
TextBox6. Enabled = True
TextBox7.Enabled = True
TextBox8. Enabled = True
TextBox9. Enabled = True
Sinon TextBox4="" : TextBox4.Enabled = True : TextBox5="" : TextBox5.Enabled = True: TextBox6="" : TextBox6.Enabled = True : TextBox7="" : TextBox7.Enabled = True: TextBox8="" : TextBox8.Enabled = True: TextBox9="" : TextBox9.Enabled = True
 

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

C'est bien ça, ta demande serait plutôt réalisable avec un ComboBox.
Car avec un ComboBox, c'est soit DDD ou XXX XXXc ou aaaa ou JJ KKKJ. Dans ce cas, nous pourrons utiliser Select Case.
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Si je mets un ComboBox en lieu et place de ma TextBox 66, le code serait lequel alors ?
Puisque nous aurons toujours les 4 cas sans doute 2 supplémentaires à envisager, non ? :confused:

De plus, je risque de rencontrer un nouveau problème, en plus du ComboBox, il faudra également et surtout (1ere condition) que mon OptionButton1 soit actif.

Cela me paraît encore plus complexe :eek:
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Bin en fait, il vaut mieux tourner 7 fois sa langue dans sa bouche avant de dire une bêtise, ce que je n'ai pas fait :(
Ça ne peut pas fonctionner non plus, le cas est exactement le même.

Je ne vois pas de solution, si quelqu'un passe par là, qu'il n'hésite pas :)
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Un autre question, Yaloo

Comment ouvrir un fichier sur une feuille donnée en masquant les onglets, invalidant les barres de formules, les titres, les quadrillages ... sans que l'utilisateur puisse les remettre sauf en utilisant un code ?

J'ai vu également qu'il était possible de partager un fichier Excel 2007 par réseau, est ce que cela signifie que plusieurs utilisateurs peuvent travailler de concert sur un même fichier ?

Quant au problème des conditions du Textbox ou ComboxBox, je devrais peut-être ouvrir un nouveau fil... Qu'en penses-tu ?
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

VB:
Dim Ws As Worksheet
'Pour toutes les feuilles du classeur
For Each Ws In Worksheets
  'Si l'index de la feuille n'est pas 1 alors on cache vraiment la feuille
  If Ws.Index <> 1 Then Ws.Visible = 2
'Feuille suivante
Next
'Avec la fenêtre active
With ActiveWindow
  'On cache l'ascenceur horizontal puis le vertical
  .DisplayHorizontalScrollBar = 0
  .DisplayVerticalScrollBar = 0
  'On cache les onglets
  .DisplayWorkbookTabs = 0
  'On cache les entêtes
  .DisplayHeadings = 0
  'On cache le quadrillage
  .DisplayGridlines = 0
End With
'On cache la barre de formule
Application.DisplayFormulaBar = 0
'On cache le ruban, 100 à modifier si besoin, faire des essais
If Application.CommandBars.Item("Ribbon").Height > 100 Then
  Application.SendKeys "^{F1}"
End If

Pour les fichiers en réseaux, d'après mes tests (pas très poussés ;)) un fichier n'est pas modifiable par 2 personnes en même temps. Par contre, celui-ci peut être consulté.

A+
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Merci Yaloo pour ta formule :D
mais le fait de masquer les onglets, ascenseurs ... ne s'appliquent qu'à la feuil1 que l'on peut nommer "edito"

Est-il possible de l'appliquer également à l'ensemble des feuilles du classeur ou qu'à certaines d'entre elles (Feuil1, feuil3, feuil4, feuil7....) :confused:
 

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo