OVH Cloud OVH Cloud

Condition et macro

8 réponses
Avatar
francois
bonjours

je voudrais savoir si l'on peu creer un macro avec la condition (si)

la condition doit faire référence a 2 colonnes soit B et J
la macro devrais donner ceci
Chercher si cell(D6) ou (J6) = "516000" dans la feuille(X)
si vrais selectionner la ligne et la transferer sur le tableau feuille(X)
cell (B16).End(xlUp).Row + 1

si faux = recommencer la recherche si cell(B6)ou cell(J6) = "516010"
si vrais selectionner la ligne et la transferer sur le tableau feuille(Y)
cell (B16).End(xlUp).Row + 1
et ainsi desuite pour permettre de faire une recherche par rapport a
plusieur N° et les ventiler sur plusieurs feuilles

j'ai la possibilité d'utiliser que la 1ere condition et de l'appliquer
feuilles par feuilles

comment peut on faire cette macro

je vous remerci d'avence pour toute l'aide que vous pourriez me porter

francois

8 réponses

Avatar
isabelle
bonjour François,

sans être sur de la destination ça pourrait ressembler à ceci :

If Range("D6") = "516000" Or Range("J6") = "516000" Then
Rows(6).Copy Destination:=Sheets("X").Range("A" &
Range("D6").End(xlUp).Row)
End If

isabelle


bonjours

je voudrais savoir si l'on peu creer un macro avec la condition (si)

la condition doit faire référence a 2 colonnes soit B et J
la macro devrais donner ceci
Chercher si cell(D6) ou (J6) = "516000" dans la feuille(X)
si vrais selectionner la ligne et la transferer sur le tableau feuille(X)
cell (B16).End(xlUp).Row + 1

si faux = recommencer la recherche si cell(B6)ou cell(J6) = "516010"
si vrais selectionner la ligne et la transferer sur le tableau feuille(Y)
cell (B16).End(xlUp).Row + 1
et ainsi desuite pour permettre de faire une recherche par rapport a
plusieur N° et les ventiler sur plusieurs feuilles

j'ai la possibilité d'utiliser que la 1ere condition et de l'appliquer
feuilles par feuilles

comment peut on faire cette macro

je vous remerci d'avence pour toute l'aide que vous pourriez me porter

francois


Avatar
francois
merci de votre réponse,
je vais aissayer cette macro et je vous tient au courant
merci encore

"isabelle" a écrit dans le message de news:

bonjour François,

sans être sur de la destination ça pourrait ressembler à ceci :

If Range("D6") = "516000" Or Range("J6") = "516000" Then
Rows(6).Copy Destination:=Sheets("X").Range("A" &
Range("D6").End(xlUp).Row)
End If

isabelle


bonjours

je voudrais savoir si l'on peu creer un macro avec la condition (si)

la condition doit faire référence a 2 colonnes soit B et J
la macro devrais donner ceci
Chercher si cell(D6) ou (J6) = "516000" dans la feuille(X)
si vrais selectionner la ligne et la transferer sur le tableau
feuille(X)


cell (B16).End(xlUp).Row + 1

si faux = recommencer la recherche si cell(B6)ou cell(J6) = "516010"
si vrais selectionner la ligne et la transferer sur le tableau
feuille(Y)


cell (B16).End(xlUp).Row + 1
et ainsi desuite pour permettre de faire une recherche par rapport a
plusieur N° et les ventiler sur plusieurs feuilles

j'ai la possibilité d'utiliser que la 1ere condition et de l'appliquer
feuilles par feuilles

comment peut on faire cette macro

je vous remerci d'avence pour toute l'aide que vous pourriez me porter

francois




Avatar
francois
bonjours isabelle et encore merci de votre réponse
que j'ai aussitot éssayé
la macro fonctionne sur le fait quelle recherche bien la valeur de référence
dans ce cas 516000
j'ai créé une fuelle appelé feul1
et un bouton de fonction
donc lorsque j'appui sur le bouton la macro fait la recherche puis me colle
le conenu de la ligne 5 dans la feuil1 a la ligne 16 la fonction
(End(xlUp).Row) me faisai le collage dans la ligne 4 donc j'ai modifié comme
suit pour obtenir la ligne 16
mon seul problème est que chaque foi que je fais une saisi sa se colle
toujours sur la meme ligne et non a la suite de la dernière ligne utilisé il
manque surement la fonction Sheets("feuil1").Range("B65536") j'ai fait
plusieur aissai mais sans succé ou doit t'on mettre dans votre macro cette
fonction pour que la saisi soit déplacé et colé sur le tableau receveur
ligne aprés ligne a chaque foi que j'actionne le bouton que j'ai appelé
ventillation
Sub ventilationoperations()
'
' ventilationoperations Macro
' Macro enregistrée le 02/12/2003 par francois
'

'

ActiveSheet.Shapes("Button 77").Select
If Range("D5") = "512000" Or Range("J5") = "512000" Then
Rows(5).Copy Destination:=Sheets("Feuil1").Range("A" &
Range("D5").End(xlUp).Row + 12)

Sheets("feuil1").Select
End If
End Sub

merci de votre réponse aussi rappide
et surtout de votre passiance avec les novices que nous sommes
je tien également a remercier tout les membres actif de ce forum qui se
dévouent bénévolement a faire profiter leur connaissances a tous ceux qui
désirent apprandre ou se perfectionner
Avatar
francois
REBONJOURS

j'ai trouvé l'astuce voila la macro modifié si sa intéresse quelqu'un
j'en suis fier pour quelqu'un qui débute dans la VBA

Sub ventilationoperations()
'
' ventilationoperations Macro
' Macro enregistrée le 02/12/2003 par francois
'

'

ActiveSheet.Shapes("Button 77").Select
If Range("D5") = "512000" Or Range("J5") = "512000" Then
lgn = Sheets("feuil1").Range("B65536").End(xlUp).Row + 1
Sheets("SAISI").Range("B5:J5").Copy Destination:=Sheets("Feuil1").Range("B"
& lgn)

Sheets("feuil1").Select

End If
End Sub

merci et bonne nuit a tous
Avatar
isabelle
rebonjour Francois,

pour coller à la ligne x + 1 il faut compter le nombre de ligne occuper
sur la feuille X
dans l'exemple je compte les valeurs sur la colonne J mais sans avoir vu
le fichier je ne suis pas sur si dans cette colonne il y aura toujours
une valeur de coller à chaque exécution de la macro.

lgn = Application.CountA(Sheets("X").Range("J16:J65535")) + 16
If Range("D6") = "516000" Or Range("J6") = "516000" Then
Rows(6).Copy Destination:=Sheets("X").Range("A" & lgn)
End If

a+
isabelle


bonjours isabelle et encore merci de votre réponse
que j'ai aussitot éssayé
la macro fonctionne sur le fait quelle recherche bien la valeur de référence
dans ce cas 516000
j'ai créé une fuelle appelé feul1
et un bouton de fonction
donc lorsque j'appui sur le bouton la macro fait la recherche puis me colle
le conenu de la ligne 5 dans la feuil1 a la ligne 16 la fonction
(End(xlUp).Row) me faisai le collage dans la ligne 4 donc j'ai modifié comme
suit pour obtenir la ligne 16
mon seul problème est que chaque foi que je fais une saisi sa se colle
toujours sur la meme ligne et non a la suite de la dernière ligne utilisé il
manque surement la fonction Sheets("feuil1").Range("B65536") j'ai fait
plusieur aissai mais sans succé ou doit t'on mettre dans votre macro cette
fonction pour que la saisi soit déplacé et colé sur le tableau receveur
ligne aprés ligne a chaque foi que j'actionne le bouton que j'ai appelé
ventillation
Sub ventilationoperations()
'
' ventilationoperations Macro
' Macro enregistrée le 02/12/2003 par francois
'

'

ActiveSheet.Shapes("Button 77").Select
If Range("D5") = "512000" Or Range("J5") = "512000" Then
Rows(5).Copy Destination:=Sheets("Feuil1").Range("A" &
Range("D5").End(xlUp).Row + 12)

Sheets("feuil1").Select
End If
End Sub

merci de votre réponse aussi rappide
et surtout de votre passiance avec les novices que nous sommes
je tien également a remercier tout les membres actif de ce forum qui se
dévouent bénévolement a faire profiter leur connaissances a tous ceux qui
désirent apprandre ou se perfectionner


Avatar
francois
REbonjours isabele
sur mon dernier post j'ai mensionné que j'avais trouvé la solution mais il
est vrais que sa me celectionnez la éeme ligne de la feuille et non la 16éme
vue que je ne suis pas un fan des macros j'ai imaginé de remplir chaque
cellules vides par un 1 que j'ai camouflé avec la couleur de police
approprié est coup de chance sa marche
mais je vous remerci de ces présitions et je récupère la formule dans mon
fichier perso sa pourras me servir pus tard

merci encore
et bonne nuit

"isabelle" a écrit dans le message de news:

rebonjour Francois,

pour coller à la ligne x + 1 il faut compter le nombre de ligne occuper
sur la feuille X
dans l'exemple je compte les valeurs sur la colonne J mais sans avoir vu
le fichier je ne suis pas sur si dans cette colonne il y aura toujours
une valeur de coller à chaque exécution de la macro.

lgn = Application.CountA(Sheets("X").Range("J16:J65535")) + 16
If Range("D6") = "516000" Or Range("J6") = "516000" Then
Rows(6).Copy Destination:=Sheets("X").Range("A" & lgn)
End If

a+
isabelle


bonjours isabelle et encore merci de votre réponse
que j'ai aussitot éssayé
la macro fonctionne sur le fait quelle recherche bien la valeur de
référence


dans ce cas 516000
j'ai créé une fuelle appelé feul1
et un bouton de fonction
donc lorsque j'appui sur le bouton la macro fait la recherche puis me
colle


le conenu de la ligne 5 dans la feuil1 a la ligne 16 la fonction
(End(xlUp).Row) me faisai le collage dans la ligne 4 donc j'ai modifié
comme


suit pour obtenir la ligne 16
mon seul problème est que chaque foi que je fais une saisi sa se colle
toujours sur la meme ligne et non a la suite de la dernière ligne
utilisé il


manque surement la fonction Sheets("feuil1").Range("B65536") j'ai fait
plusieur aissai mais sans succé ou doit t'on mettre dans votre macro
cette


fonction pour que la saisi soit déplacé et colé sur le tableau receveur
ligne aprés ligne a chaque foi que j'actionne le bouton que j'ai appelé
ventillation
Sub ventilationoperations()
'
' ventilationoperations Macro
' Macro enregistrée le 02/12/2003 par francois
'

'

ActiveSheet.Shapes("Button 77").Select
If Range("D5") = "512000" Or Range("J5") = "512000" Then
Rows(5).Copy Destination:=Sheets("Feuil1").Range("A" &
Range("D5").End(xlUp).Row + 12)

Sheets("feuil1").Select
End If
End Sub

merci de votre réponse aussi rappide
et surtout de votre passiance avec les novices que nous sommes
je tien également a remercier tout les membres actif de ce forum qui se
dévouent bénévolement a faire profiter leur connaissances a tous ceux
qui


désirent apprandre ou se perfectionner




Avatar
francois
bonjours isabelle
je voudrais savoir s'il est possible d'inverser les valeurs de cellules
dans la macro ci dessous
exemple
une foi que la recherche est fini
If Range("D6") = "516000" Or Range("J6") = "516000" Then
il me faudrait une commande pour inverser les valeurs des cellules
G et H pour la ventilation de la recherche sur J5
en fait s'est une tenu comptable que je suis entrin de faire et si le compte
X dans (D5) est debité la contrepartie qui est dans la colonne (J5) doit
etre crédité
en applicant la macro comme tel sa me recopie la ligne identique dans les 2
comptes de ventilation
donc ol me faudrais que quand le critère de contrepartie déterminé en D5
inverse les deux cellules dans le compte approprié

quand D5 correspond a la recheche la ligne doit etre copié comme présenté
dans la saisie

je sais pas si je présente la question de manière claire mais j'espère que
vous la comprendrez
If Range("D6") = "516000" Or Range("J6") = "516000" Then
Rows(6).Copy Destination:=Sheets("X").Range("A" &
Range("D6").End(xlUp).Row)
End If


je vous remerci encore 1000 foix pour l'aide que vous m'avez porté hier
en espèrent ne pas trop vous ennuyer avec mes problèmes de débutant
merci encore

Avatar
isabelle
bonjour Francois,

je ne comprend pas trop, parce que dans l'exemple c'est la ligne entière
qui est recopier sur la feuille X,
quel sont les valeurs à inverser et sous quel condition ?

a+
isabelle


bonjours isabelle
je voudrais savoir s'il est possible d'inverser les valeurs de cellules
dans la macro ci dessous
exemple
une foi que la recherche est fini
If Range("D6") = "516000" Or Range("J6") = "516000" Then
il me faudrait une commande pour inverser les valeurs des cellules
G et H pour la ventilation de la recherche sur J5
en fait s'est une tenu comptable que je suis entrin de faire et si le compte
X dans (D5) est debité la contrepartie qui est dans la colonne (J5) doit
etre crédité
en applicant la macro comme tel sa me recopie la ligne identique dans les 2
comptes de ventilation
donc ol me faudrais que quand le critère de contrepartie déterminé en D5
inverse les deux cellules dans le compte approprié

quand D5 correspond a la recheche la ligne doit etre copié comme présenté
dans la saisie

je sais pas si je présente la question de manière claire mais j'espère que
vous la comprendrez
If Range("D6") = "516000" Or Range("J6") = "516000" Then
Rows(6).Copy Destination:=Sheets("X").Range("A" &
Range("D6").End(xlUp).Row)
End If


je vous remerci encore 1000 foix pour l'aide que vous m'avez porté hier
en espèrent ne pas trop vous ennuyer avec mes problèmes de débutant
merci encore