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

Un petit SI en VBA

  • Initiateur de la discussion Ouin-Ouin
  • Date de début
O

Ouin-Ouin

Guest
Bonjour à tous de Djerba ou il fait un temps magnifique et excellente semaine.

Je désire préparer un petit IF (SI) dans mon USF:
la valeur de mon TextBox13 est 1,5 alors (si argument valide ) alors en colonne J "sinon" ( et pour toute autre valeur ) en colonne L

Voilà la procédure actuel:

With TheBaseBook.Sheets("AnnexeII") 'vu qu'on a deux classeurs à ce moment là... ( merci thierry )
Ligne = .Range("B65536").End(xlUp).Row + 1

.Range("B" & CStr(Ligne)) = TextBox16
.Range("C" & CStr(Ligne)) = TextBox15
.Range("D" & CStr(Ligne)) = TextBox2
.Range("E" & CStr(Ligne)) = TextBox9
.Range("F" & CStr(Ligne)) = ComboBox1
.Range("G" & CStr(Ligne)) = TextBox3
.Range("H" & CStr(Ligne)) = TextBox8
.Range("I" & CStr(Ligne)) = TextBox5
.Range("J" & CStr(Ligne)) = TextBox13 ou
.Range("L" & CStr(Ligne)) = TextBox13 selon la valeur du TextBox13 dans l'USF
.Range("O" & CStr(Ligne)) = Label2
.Range("N" & CStr(Ligne)) = Label1

.Range("J" & CStr(Ligne)).NumberFormat = "#,###,###0.000"
.Range("L" & CStr(Ligne)).NumberFormat = "#,###,###0.000"
.Range("N" & CStr(Ligne)).NumberFormat = "#,###,###0.000"
.Range("O" & CStr(Ligne)).NumberFormat = "#,###,###0.000"

.Cells(Ligne, 1) = Ligne - 2
End With

Bonne journée à tous
Ouin-Ouin
 
O

Ouin-Ouin

Guest
Merci à Didier_mDF pour la solution

If TextBox14 = 5 Then
.Cells(Ligne, 10) = TextBox13
Else
If TextBox14 = 2.5 Then .Cells(Ligne, 12) = TextBox13
End If

il faut enlever la ligne .Range"J" dans la procédure sinon le résultat viendra dans les deux cellules ("J"et"L")

Bonne nuit
@plus Ouin-Ouin
 
O

Ouin-Ouin

Guest
Re bonsoir à tous
en annexe ma procédure qui fonctionne trps bien pour la feuille "AnnexeII" maintenant je dois remplir ma feuille "AnnexeV" sous le même système mais avec d'autres conditions
Comment je dois m'y prendre pour que Sa Majesté VBA comprennent ce que j'aimerai de lui:

Procédure actuel qui marche et que je dois garder pour les résultats en AnnexII:

Private Sub CommandButton1_Click()
Dim WB As String, WS As String, WR As String
Dim TheNum As Double
Dim Ligne As Integer
Dim TheBaseBook As Workbook 'DECLARATION DE VARIABLE OBJET WORKBOOK

Set TheBaseBook = ThisWorkbook '<<<<<<<<<< JE DEFINIS LE WORKBOOK DE BASE

With Sheets("Document")
.Activate
.Copy
End With

With ActiveWorkbook.ActiveSheet
.Range("B41") = ComboBox1
.Range("B42") = TextBox3
.Range("B43") = TextBox5
.Range("B46") = TextBox8
.Range("B35") = TextBox9
.Range("C35") = TextBox10
.Range("D35") = TextBox11
.Range("E35") = TextBox12
.Range("B38") = TextBox2
.Range("D23") = Label1
.Range("E23") = Label2
.Range("B55") = TextBox1
.Range("C8") = TextBox17
.Range("C9") = TextBox16
.Range("D9") = TextBox15

If Not IsNumeric(TextBox13) Then Exit Sub

TheNum = TextBox13.Value

With .Range("C23")
.Value = TheNum
.NumberFormat = "#,###,##0.000"
End With

If Not IsNumeric(Label1) Then Exit Sub

TheNum = Label1.Caption

With .Range("D23")
.Value = TheNum
.NumberFormat = "#,###,##0.000"
End With


If Not IsNumeric(Label2) Then Exit Sub

TheNum = Label2.Caption


With .Range("E23")
.Value = TheNum
.NumberFormat = "#,###,##0.000"
End With
End With
Application.Dialogs(xlDialogSaveAs).Show "Document.xls"

With TheBaseBook.Sheets("AnnexeII") 'vu qu'on a deux classeurs à ce moment là...
Ligne = .Range("B65536").End(xlUp).Row + 1

.Range("B" & CStr(Ligne)) = TextBox16
.Range("C" & CStr(Ligne)) = TextBox15
.Range("D" & CStr(Ligne)) = TextBox2
.Range("E" & CStr(Ligne)) = TextBox9
.Range("F" & CStr(Ligne)) = ComboBox1
.Range("G" & CStr(Ligne)) = TextBox3
.Range("H" & CStr(Ligne)) = TextBox8
.Range("I" & CStr(Ligne)) = TextBox5

.Range("O" & CStr(Ligne)) = Label2
.Range("N" & CStr(Ligne)) = Label1

.Range("J" & CStr(Ligne)).NumberFormat = "#,###,###0.000"
.Range("L" & CStr(Ligne)).NumberFormat = "#,###,###0.000"
.Range("N" & CStr(Ligne)).NumberFormat = "#,###,###0.000"
.Range("O" & CStr(Ligne)).NumberFormat = "#,###,###0.000"

.Cells(Ligne, 1) = Ligne - 2


'' Si TextBox14 = 5 alors la valeur du TextBox13 se met en colonne "J" si la valeur
'' du TextBox14 est de "5" ou "10" alors la valuer du TextBox13 se met en "L"
'Merci Didier_mdf forum Excel pour toute son aide


If TextBox14 = 2.5 Then
.Cells(Ligne, 10) = TextBox13
Else
If TextBox14 = "5" Or "10" Then .Cells(Ligne, 12) = TextBox13


End If



End With



End Sub


Ce qui change c'est:

Les données doivent se mettrent en "AnnexeV" si:

TextBox14=1,5 et TextBox9=M alors la valeur TextBox13 .cells(Ligne,10) et si TextBox14=1,5 ( et seulement 1,5) alors TextBox13 .cells (Ligne12)

Donc se sont des conditions supplémentaires et là en faite toute la première partie de la procédure (With TheBaseBook.Sheets doit suivre

Ok voilà ma demande j'éspère pas trop compliquée à comprendre

un tout grand merci à tous et excellente soirée
Ouin-Ouin
 
O

Ouin-Ouin

Guest
Bonjour tout le monde,

En faite j'ai oublié de préciser que tous les TextBox doivent se loger comme en AnnexeII si les conditions :
TextBox14=1,5 et TextBox9=M alors la valeur TextBox13 .cells(Ligne,10) et si TextBox14=1,5 ( et seulement 1,5) alors TextBox13 .cells (Ligne12)
sont remplies
La présentation est la même qu'en annexe II

Je m'en sors malheureusement pas encore seul
Merci de votre aide et bien sûr je zippe volontiers le fichier sur demande

En vous remerciant de votre collaboration

Ouin-Ouin
 
O

Ouin-Ouin

Guest
Re: IF en VBA

Bonjour tout le monde et les vacanciers,

Ok je suis arrivé à mettre mes données en "AnnexeV" mais le hici c'est que 'elles se mettent aux deux places en "AnnexeII" et en "AnnexeV" maintenant qu'ai-je fait de faux dans la procédure si dessous?

Contitions à remplir pour se loger en "AnnexeII"

If TextBox14 = 2.5 Then
Cells(Ligne, 12) = TextBox13
Else
If TextBox14 = "5" Or "10" Then Cells(Ligne, 10) = TextBox13

End If

Contitions à remplir pour se loger en "AnnexeV"

If TextBox14 = "1.5" And TextBox9 = "M" Then
Cells(Ligne, 10) = TextBox13
Else
If TextBox14 = 1.5 Then Cells(Ligne, 12) = TextBox13

End If

Excellente journée à tous et bonnes vacances aux vacanciers
Ouin-Ouin
 

Discussions similaires

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