Fonction SI [Résolu]

Ancestroplaced 10 Messages postés vendredi 20 février 2009Date d'inscription 3 octobre 2013 Dernière intervention - 2 oct. 2013 à 12:48 - Dernière réponse : jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 21 avril 2018 Dernière intervention
- 3 oct. 2013 à 23:07
Bonjour,

Je travaille sur un code qui me permet de sélectionner la dernière cellule non vide de la colonne A sur la feuille "BASE" et qui va coller en fonction de la valeur de cette cellule dans la feuille "YF" ou "BP".

Le collé se fait systématiquement dans la feuille "BP".

Je pense que j'ai mal écrit ma fonction SI.

Auriez-vous une idée?

Merci d'avance

----------------------------------------------------
Sub Bouton2_Clic()

Sheets("BASE").Select
Range("A65536").End(xlUp).Select
Selection.Copy

If Range("A65536").Value = YF Then

Sheets("YF").Select

End If

If Range("A65536").Value = BP Then

Sheets("BP").Select

End If

Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

End Sub
--
Afficher la suite 

11 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 2 oct. 2013 à 13:17
0
Utile
Bonjour,
Et-la question/réponse est ... où et comment as-tu déclaré et initialisé les deux variables BP et YF ????
Elémentaire, mon cher Watson ....
Commenter la réponse de ucfoutu
Ancestroplaced 10 Messages postés vendredi 20 février 2009Date d'inscription 3 octobre 2013 Dernière intervention - 2 oct. 2013 à 13:43
0
Utile
Effectivement, es ce que tu peux me dire comment je dois le faire?

Es ce que je mets juste Dim YF As String et Dim BP As String en dessous de Sub?
Commenter la réponse de Ancestroplaced
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 2 oct. 2013 à 13:47
0
Utile
Hmmm...
Gné ?
Tes dim ne sont que des dséclarations et non des initialisations !
je te laisse là ...(car là, vraiment, ce sont les bases de la base de la base qui sont absentes !)
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 2 oct. 2013 à 13:54
0
Utile
Enfin ... !
Réfléchis donc un peu ...
Si tu déclares par exemple que toto est une adresse (exemple) :
que vaut donc toto ? c'est une adresse, pour sûr ! Mais laquelle ? "Abracadabra" ou "on s'en fout", ou rien du tout, donc "" ????)
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 2 oct. 2013 à 15:08
0
Utile
Une chose est certaine, dans mon exemple ci-dessus) : toto n'est pas "toto" (en espérant que cela te "parle" un peu) sauf si tu as initialisé la variable toto en lui attribuant la valeur "toto", hein ...*
Dur dur ?
Commenter la réponse de ucfoutu
Ancestroplaced 10 Messages postés vendredi 20 février 2009Date d'inscription 3 octobre 2013 Dernière intervention - 2 oct. 2013 à 18:33
0
Utile
Effectivement je suis débutant, si çà t'ennuie autant d'aider les novices tu à le droit de passer ton chemin, sinon en effet je suis perdu. Je ne sais pas comment déclarer mes variables.

Cordialement
Commenter la réponse de Ancestroplaced
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 2/10/2013 à 19:21
0
Utile
Bien.
Bonne chance, donc, Ancestroplaced, dans ton apprentissage (ce sera sans moi et je passerai mon chemin, pour répondre à ton voeu, lorsque tu ouvriras tes discussions ).
Commenter la réponse de ucfoutu
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 21 avril 2018 Dernière intervention - Modifié par jordane45 le 3/10/2013 à 02:16
0
Utile
Bonsoir,
je suis perdu. Je ne sais pas comment déclarer mes variables.
Comme le dit Ucfoutu (que je salue au passage), il faut comprendre ce que signifie "déclarer" une variable et "Initialiser" une variable.

'je déclare ma variable
Dim Mavariable as string
'pour l'instant elle ne contient rien !

Mavariable = "du zoli texte.."
'cette fois je lui ai assigné une valeur.


Je vous invite à mettre au début de votre code avant le premier SUB :
Option Explicit On

sub maMacro()
'...
End sub



Pour en revenir à votre souci de départ ...
Dans les lignes de code :
If Range("A65536").Value = YF Then 
If Range("A65536").Value = BP Then 

que valent YF et BP ?

Il semble que ces variables soient vides (voir explication d'avant).

et puis au lieu de passer par des successions de IF... essayez le SELECT CASE

Dim YF as string
Dim BP as string
Dim valAtester as string
YF = "Texte 1"
BP = "Texte 2"
valAtester = Range("A65536").Value 

Select Case valAtester 
  Case YF
   Sheets("YF").Select 
  Case BP
    Sheets("BP").Select 
End Select







NB : lors de tes prochains messages, merci d'utiliser la coloration syntaxique pour poster du code
(première icone en haut à droite lorsque tu écris).
'Ceci est du code !



Cordialement,
Jordane
Commenter la réponse de jordane45
Ancestroplaced 10 Messages postés vendredi 20 février 2009Date d'inscription 3 octobre 2013 Dernière intervention - 3 oct. 2013 à 22:40
0
Utile
Merci pour les petites astuces, un collègue m'a dépanné en dérivant un peu de la fonction SI:

Sub Bouton1_Clic()

Sheets("BASE").Select
Range("A65536").End(xlUp).Select
Selection.Copy

Select Case Selection.Value
Case "YF"
Sheets("YF").Select
Case "BP"
Sheets("BP").Select
Case Else
End Select

Range("A65536").End(xlUp).Offset(1, 0).Select
ActiveSheet.Paste

End Sub

--
Commenter la réponse de Ancestroplaced
Ancestroplaced 10 Messages postés vendredi 20 février 2009Date d'inscription 3 octobre 2013 Dernière intervention - 3 oct. 2013 à 22:41
0
Utile
1
Les YF et BP sont des feuilles Excel

--
jordane45 20570 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 21 avril 2018 Dernière intervention - 3 oct. 2013 à 23:07
Si ton souci est résolu merci de clôturer le sujet.
Commenter la réponse de Ancestroplaced

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.