Fonction si ???

  • Initiateur de la discussion laoulou
  • Date de début
L

laoulou

Guest
Bonjour

j'ai un tableau qui me trote dans la tete depuis un moment, et ce que j'aimerais faire entre autres c'est une fonction si qui ressemble à ça :

Si("la cellule est vide";"passer à la suivante";"la copier")

en fait ce que je cherche à faire c'est ne pas copier une cellule vide et je n'y arrive pas donc je vous demande de l'aide et si je n'y arrive pas ou que cela se revele impossible j'aimerais connaitre la formule pour dire :

Si("la cellule est vide";"la masquer";"")

Merci par avance.
 
L

Lord Nelson

Guest
Salut Laoulou,

D'après ce que tu décris, ce n'est une fonction qu'il te faut mais une procédure (autrement dit une macro).

La différence entre les deux est importante :
- Une fonction (Function) donne une valeur dans la cellule où elle est appelée
- Une procédure (Sub) effectue une action ou une série d'actions.

Pour t'aider, il faudrait que tu nous montres quelques éléments concrets de ton tableau.

A+
LN
 
L

laoulou

Guest
voili voila
en fait je saisie tout dans janvier au kilometre (comme on dit)
et j'aimerais que seulement les paiement par cheque se trouve sur la feuillle chqbk1
 

Pièces jointes

  • Participation04.zip
    11 KB · Affichages: 15
  • Participation04.zip
    11 KB · Affichages: 12
  • Participation04.zip
    11 KB · Affichages: 13
L

Lord Nelson

Guest
Bonjour tout le monde !

Je te propose d'ajouter un bouton de commande "Remise Chèques" sur la feuille Janvier pour effectuer le traitement :

Private Sub CommandButton1_Click()
Dim CL As Range
Dim Ligne As Long
Ligne = 20
'Effacement de la plage de destination
Sheets("ChqBk1").Range("A21:D48").ClearContents
'Test de la colonne H
For Each CL In Range("H2:H101")
If CL = "Chèque" Then
'Report des données dans la feuille ChqBk1
Ligne = Ligne + 1
With Sheets("ChqBk1")
.Range("A" & CStr(Ligne)) = CL.Offset(0, 1)
.Range("B" & CStr(Ligne)) = CL.Offset(0, -5)
.Range("C" & CStr(Ligne)) = CL.Offset(0, 2)
.Range("D" & CStr(Ligne)) = CL.Offset(0, 3)
End With
End If
Next
End Sub

Et ça roule !
A+
LN
 

Pièces jointes

  • JournalBanque.zip
    18.4 KB · Affichages: 17
L

laoulou

Guest
merci pour toutes les solutions d'un coup :)
merci monique ton fichier est super complet (quand est ce qu'on se fait une bouffe ?) lol
Merci lord nelson ton fichier et ta technique son sans faille (je vais pas t'inviter à diner, ne soit pas jaloux, mais habituellement je ne drague pas les hommes) mdr
Merci chris je pense que ta solution est aussi efficace mais je ne connaissais pas (c'est pas pour ça que je ne vais pas m'y interresser :)

En gros merci à toute(s) (sans "s") et à tous je ne manquerais pas d'eplucher vos technique :)

je vois que j'ai encore des progrés à faire sur excel.

Thanks a lot
 
L

Lord Nelson

Guest
Salut Laoulou,

Pour modifier le bouton de commande, tu affiches la barre d'outils "Boite à outils Contrôles" puis tu cliques sur l'icône "Mode création" (un triangle vert). En mode création, tu peux cliquer sur le bouton sans lancer la macro et ouvrir sa fenêtre de propriétés avec un clic droit.

Les modifications faites, tu cliques sur "Désactiver le mode création".

A+
LN
 
D

dmode

Guest
Macro excel

Bonjour mes informaticiens favoris,
Voilà mon souci, j’ai réalisé une macro me permettant d’écrire sur une feuille Excel par le biais d’une UserForm.
Jusque là rien de sorcier. Mais mon problème c’est que une fois après avoir validé mon texte, il reste dans ma UserForm.
Je ne connais pas la formule pour l’effacer.
Dans l’attente cordialement dmode.

Private Sub CommandButton1_Click()
Sheets("feuil2").Select
If Range("A2").Value = "" Then
Décalage = 0
Range("A2").Select
Else
Décalage = 1
Position = Range("A1").End(xlDown).Address
Range(Position).Select
Range("A1").End(xlDown).Select
End If
ActiveCell.Offset(Décalage, 0).Range("a1").Select
ActiveCell.Value = TextBox1
Sheets("feuil2").Select

End Sub

Private Sub UserForm_Activate()
SaisirNom = Range("A1").End(xlDown).Address
TextBox1.RowSource = "A1:" & SaisirNom
TextBox1.ListIndex = 0
End Sub
 

Pièces jointes

  • Capture1.zip
    0 bytes · Affichages: 24
D

dmode

Guest
Macro excel

Bonjour mes informaticiens favoris,
Voilà mon souci, j’ai réalisé une macro me permettant d’écrire sur une feuille Excel par le biais d’une UserForm.
Jusque là rien de sorcier. Mais mon problème c’est que une fois après avoir validé mon texte, il reste dans ma UserForm.
Je ne connais pas la formule pour l’effacer.
Dans l’attente cordialement dmode.

Private Sub CommandButton1_Click()
Sheets("feuil2").Select
If Range("A2").Value = "" Then
Décalage = 0
Range("A2").Select
Else
Décalage = 1
Position = Range("A1").End(xlDown).Address
Range(Position).Select
Range("A1").End(xlDown).Select
End If
ActiveCell.Offset(Décalage, 0).Range("a1").Select
ActiveCell.Value = TextBox1
Sheets("feuil2").Select

End Sub

Private Sub UserForm_Activate()
SaisirNom = Range("A1").End(xlDown).Address
TextBox1.RowSource = "A1:" & SaisirNom
TextBox1.ListIndex = 0
End Sub
 

Statistiques des forums

Discussions
312 305
Messages
2 087 088
Membres
103 463
dernier inscrit
neophyte_seb