Après avoir parcouru en vain les messages précédents, je souhaiterais
obtenir un début de solution à ma demande.
En Français :
Si la valeur de la cellule BD12 de ma feuille 1 est supérieure à 0 alors je
remercie Excel de faire tout seul, comme un grand, un copier de la cellule
BD12 de ma feuille 1 dans la cellule A1 de ma feuille 2, puis de faire un
copier de la cellule A12 de ma feuille 1 pour la coller dans la cellule B1 de
ma feuille 2 et enfin de faire un copier de la cellule C12 de ma feuille 1
dans la cellule C1 de ma feuille 2.
Cette opération est à réaliser sur les cellules BD12 à BD111.
J'ai réussi à le faire avec : If Range("BD12").Value > 0 Then
MAIS cela m'a demandé de le faire 99 fois... en plusieurs codes car la
procédure était trop grande...
En VBA :
J'ai tenté sans succès :
For I = 12 To 111
Set curCell = Worksheets("Feuil1").Cells(I, 56)
If Abs(curCell.Value) > 0 Then
Sheets("Feuil1").Select
Cells(I, 56).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test"
ActiveSheet.Paste
Sheets("Feuil1").Select
Cells(I, 1).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test2"
ActiveSheet.Paste
Sheets("Feuil1").Select
Cells(I, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test3"
ActiveSheet.Paste
Sheets("Feuil1").Select
Next
End If
End Sub
L'Application.Run "Plannings.xls!Feuil3.Test et 2 et 3 sert à trouver la
dernière ligne de la colonne A, B & C.
Il m'indique Next sans For, en message d'erreur...
Et là, c'est le drame...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichDenis
Pas sûr d'avoir saisi ce que tu veux faire ... mais pourquoi ne pas mettre directement les formules dans la feuil2
En A1 de la feuil2, tu inscris : =SI(Feuil1!BD12>1; Feuil1!BD12;"")
En B1 de la feuil2 =SI(Feuil1!BD12>1; Feuil2!A12;"")
En C1 de la feuil2 =SI(Feuil1!BD12>1;Feuil1!C12;"")
Tu recopies ces formules sur le nombre de lignes requises par ton application. Si tu dois faire toujours référence à Feuil!BD12 sur toute la plage, tu dois mettre cette adresse en absolue de cette manière : Feuil1!$BD$12 dans les formules.
As-tu réellement besoin de copier ces formules à l'aide de VBA... si oui fais le savoir.
"PhilPhil" a écrit dans le message de groupe de discussion : Bonjour la communauté,
Après avoir parcouru en vain les messages précédents, je souhaiterais obtenir un début de solution à ma demande.
En Français :
Si la valeur de la cellule BD12 de ma feuille 1 est supérieure à 0 alors je remercie Excel de faire tout seul, comme un grand, un copier de la cellule BD12 de ma feuille 1 dans la cellule A1 de ma feuille 2, puis de faire un copier de la cellule A12 de ma feuille 1 pour la coller dans la cellule B1 de ma feuille 2 et enfin de faire un copier de la cellule C12 de ma feuille 1 dans la cellule C1 de ma feuille 2. Cette opération est à réaliser sur les cellules BD12 à BD111.
J'ai réussi à le faire avec : If Range("BD12").Value > 0 Then MAIS cela m'a demandé de le faire 99 fois... en plusieurs codes car la procédure était trop grande...
En VBA :
J'ai tenté sans succès :
For I = 12 To 111 Set curCell = Worksheets("Feuil1").Cells(I, 56) If Abs(curCell.Value) > 0 Then Sheets("Feuil1").Select Cells(I, 56).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test" ActiveSheet.Paste Sheets("Feuil1").Select Cells(I, 1).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test2" ActiveSheet.Paste Sheets("Feuil1").Select Cells(I, 3).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test3" ActiveSheet.Paste Sheets("Feuil1").Select Next End If End Sub
L'Application.Run "Plannings.xls!Feuil3.Test et 2 et 3 sert à trouver la dernière ligne de la colonne A, B & C. Il m'indique Next sans For, en message d'erreur... Et là, c'est le drame...
MERCI d'avance pour votre aide
Pas sûr d'avoir saisi ce que tu veux faire ... mais pourquoi
ne pas mettre directement les formules dans la feuil2
En A1 de la feuil2, tu inscris :
=SI(Feuil1!BD12>1; Feuil1!BD12;"")
En B1 de la feuil2
=SI(Feuil1!BD12>1; Feuil2!A12;"")
En C1 de la feuil2
=SI(Feuil1!BD12>1;Feuil1!C12;"")
Tu recopies ces formules sur le nombre de lignes requises par ton application.
Si tu dois faire toujours référence à Feuil!BD12 sur toute la plage, tu dois
mettre cette adresse en absolue de cette manière : Feuil1!$BD$12 dans les
formules.
As-tu réellement besoin de copier ces formules à l'aide de VBA... si oui
fais le savoir.
"PhilPhil" <PhilPhil@discussions.microsoft.com> a écrit dans le message de groupe de
discussion : B9F9A1C4-A568-4000-8110-7CE686771A24@microsoft.com...
Bonjour la communauté,
Après avoir parcouru en vain les messages précédents, je souhaiterais
obtenir un début de solution à ma demande.
En Français :
Si la valeur de la cellule BD12 de ma feuille 1 est supérieure à 0 alors je
remercie Excel de faire tout seul, comme un grand, un copier de la cellule
BD12 de ma feuille 1 dans la cellule A1 de ma feuille 2, puis de faire un
copier de la cellule A12 de ma feuille 1 pour la coller dans la cellule B1 de
ma feuille 2 et enfin de faire un copier de la cellule C12 de ma feuille 1
dans la cellule C1 de ma feuille 2.
Cette opération est à réaliser sur les cellules BD12 à BD111.
J'ai réussi à le faire avec : If Range("BD12").Value > 0 Then
MAIS cela m'a demandé de le faire 99 fois... en plusieurs codes car la
procédure était trop grande...
En VBA :
J'ai tenté sans succès :
For I = 12 To 111
Set curCell = Worksheets("Feuil1").Cells(I, 56)
If Abs(curCell.Value) > 0 Then
Sheets("Feuil1").Select
Cells(I, 56).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test"
ActiveSheet.Paste
Sheets("Feuil1").Select
Cells(I, 1).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test2"
ActiveSheet.Paste
Sheets("Feuil1").Select
Cells(I, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test3"
ActiveSheet.Paste
Sheets("Feuil1").Select
Next
End If
End Sub
L'Application.Run "Plannings.xls!Feuil3.Test et 2 et 3 sert à trouver la
dernière ligne de la colonne A, B & C.
Il m'indique Next sans For, en message d'erreur...
Et là, c'est le drame...
Pas sûr d'avoir saisi ce que tu veux faire ... mais pourquoi ne pas mettre directement les formules dans la feuil2
En A1 de la feuil2, tu inscris : =SI(Feuil1!BD12>1; Feuil1!BD12;"")
En B1 de la feuil2 =SI(Feuil1!BD12>1; Feuil2!A12;"")
En C1 de la feuil2 =SI(Feuil1!BD12>1;Feuil1!C12;"")
Tu recopies ces formules sur le nombre de lignes requises par ton application. Si tu dois faire toujours référence à Feuil!BD12 sur toute la plage, tu dois mettre cette adresse en absolue de cette manière : Feuil1!$BD$12 dans les formules.
As-tu réellement besoin de copier ces formules à l'aide de VBA... si oui fais le savoir.
"PhilPhil" a écrit dans le message de groupe de discussion : Bonjour la communauté,
Après avoir parcouru en vain les messages précédents, je souhaiterais obtenir un début de solution à ma demande.
En Français :
Si la valeur de la cellule BD12 de ma feuille 1 est supérieure à 0 alors je remercie Excel de faire tout seul, comme un grand, un copier de la cellule BD12 de ma feuille 1 dans la cellule A1 de ma feuille 2, puis de faire un copier de la cellule A12 de ma feuille 1 pour la coller dans la cellule B1 de ma feuille 2 et enfin de faire un copier de la cellule C12 de ma feuille 1 dans la cellule C1 de ma feuille 2. Cette opération est à réaliser sur les cellules BD12 à BD111.
J'ai réussi à le faire avec : If Range("BD12").Value > 0 Then MAIS cela m'a demandé de le faire 99 fois... en plusieurs codes car la procédure était trop grande...
En VBA :
J'ai tenté sans succès :
For I = 12 To 111 Set curCell = Worksheets("Feuil1").Cells(I, 56) If Abs(curCell.Value) > 0 Then Sheets("Feuil1").Select Cells(I, 56).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test" ActiveSheet.Paste Sheets("Feuil1").Select Cells(I, 1).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test2" ActiveSheet.Paste Sheets("Feuil1").Select Cells(I, 3).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test3" ActiveSheet.Paste Sheets("Feuil1").Select Next End If End Sub
L'Application.Run "Plannings.xls!Feuil3.Test et 2 et 3 sert à trouver la dernière ligne de la colonne A, B & C. Il m'indique Next sans For, en message d'erreur... Et là, c'est le drame...
MERCI d'avance pour votre aide
PhilPhil
Bonjour MichDenis,
Cette solution ne convient pas car si la valeur est inférieure à 1 alors je souhaite mettre BD13 en A1 de mon autre feuille. A condition que BD13 soit supérieur à 1, sinon je souhaite mettre BD14...
Si BD12>1 alors BD12 en A1 sinon rien en A1 Si BD13>1 alors BD13 en A2 sinon rien en A2
MAIS EGALEMENT
Si BD12<1 alors rien en A1 Si BD13>1 alors BD13 en A1
D'ou la macro qui sert à trouver la dernière ligne pour pouvoir coller les informations les unes sous les autres.
J'espére avoir été plus clair dans mon explication.
Merci pour votre aide. Slts.
"MichDenis" a écrit :
Pas sr d'avoir saisi ce que tu veux faire ... mais pourquoi ne pas mettre directement les formules dans la feuil2
En A1 de la feuil2, tu inscris : =SI(Feuil1!BD12>1; Feuil1!BD12;"")
En B1 de la feuil2 =SI(Feuil1!BD12>1; Feuil2!A12;"")
En C1 de la feuil2 =SI(Feuil1!BD12>1;Feuil1!C12;"")
Tu recopies ces formules sur le nombre de lignes requises par ton application. Si tu dois faire toujours rfrence Feuil!BD12 sur toute la plage, tu dois mettre cette adresse en absolue de cette manire : Feuil1!$BD$12 dans les formules.
As-tu rellement besoin de copier ces formules l'aide de VBA... si oui fais le savoir.
"PhilPhil" a crit dans le message de groupe de discussion : Bonjour la communaut,
Aprs avoir parcouru en vain les messages prcdents, je souhaiterais obtenir un dbut de solution ma demande.
En Franais :
Si la valeur de la cellule BD12 de ma feuille 1 est suprieure 0 alors je remercie Excel de faire tout seul, comme un grand, un copier de la cellule BD12 de ma feuille 1 dans la cellule A1 de ma feuille 2, puis de faire un copier de la cellule A12 de ma feuille 1 pour la coller dans la cellule B1 de ma feuille 2 et enfin de faire un copier de la cellule C12 de ma feuille 1 dans la cellule C1 de ma feuille 2. Cette opration est raliser sur les cellules BD12 BD111.
J'ai russi le faire avec : If Range("BD12").Value > 0 Then MAIS cela m'a demand de le faire 99 fois... en plusieurs codes car la procdure tait trop grande...
En VBA :
J'ai tent sans succs :
For I = 12 To 111 Set curCell = Worksheets("Feuil1").Cells(I, 56) If Abs(curCell.Value) > 0 Then Sheets("Feuil1").Select Cells(I, 56).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test" ActiveSheet.Paste Sheets("Feuil1").Select Cells(I, 1).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test2" ActiveSheet.Paste Sheets("Feuil1").Select Cells(I, 3).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test3" ActiveSheet.Paste Sheets("Feuil1").Select Next End If End Sub
L'Application.Run "Plannings.xls!Feuil3.Test et 2 et 3 sert trouver la dernire ligne de la colonne A, B & C. Il m'indique Next sans For, en message d'erreur... Et l, c'est le drame...
MERCI d'avance pour votre aide
Bonjour MichDenis,
Cette solution ne convient pas car si la valeur est inférieure à 1 alors je
souhaite mettre BD13 en A1 de mon autre feuille. A condition que BD13 soit
supérieur à 1, sinon je souhaite mettre BD14...
Si BD12>1 alors BD12 en A1 sinon rien en A1
Si BD13>1 alors BD13 en A2 sinon rien en A2
MAIS EGALEMENT
Si BD12<1 alors rien en A1
Si BD13>1 alors BD13 en A1
D'ou la macro qui sert à trouver la dernière ligne pour pouvoir coller les
informations les unes sous les autres.
J'espére avoir été plus clair dans mon explication.
Merci pour votre aide.
Slts.
"MichDenis" a écrit :
Pas sr d'avoir saisi ce que tu veux faire ... mais pourquoi
ne pas mettre directement les formules dans la feuil2
En A1 de la feuil2, tu inscris :
=SI(Feuil1!BD12>1; Feuil1!BD12;"")
En B1 de la feuil2
=SI(Feuil1!BD12>1; Feuil2!A12;"")
En C1 de la feuil2
=SI(Feuil1!BD12>1;Feuil1!C12;"")
Tu recopies ces formules sur le nombre de lignes requises par ton application.
Si tu dois faire toujours rfrence Feuil!BD12 sur toute la plage, tu dois
mettre cette adresse en absolue de cette manire : Feuil1!$BD$12 dans les
formules.
As-tu rellement besoin de copier ces formules l'aide de VBA... si oui
fais le savoir.
"PhilPhil" <PhilPhil@discussions.microsoft.com> a crit dans le message de groupe de
discussion : B9F9A1C4-A568-4000-8110-7CE686771A24@microsoft.com...
Bonjour la communaut,
Aprs avoir parcouru en vain les messages prcdents, je souhaiterais
obtenir un dbut de solution ma demande.
En Franais :
Si la valeur de la cellule BD12 de ma feuille 1 est suprieure 0 alors je
remercie Excel de faire tout seul, comme un grand, un copier de la cellule
BD12 de ma feuille 1 dans la cellule A1 de ma feuille 2, puis de faire un
copier de la cellule A12 de ma feuille 1 pour la coller dans la cellule B1 de
ma feuille 2 et enfin de faire un copier de la cellule C12 de ma feuille 1
dans la cellule C1 de ma feuille 2.
Cette opration est raliser sur les cellules BD12 BD111.
J'ai russi le faire avec : If Range("BD12").Value > 0 Then
MAIS cela m'a demand de le faire 99 fois... en plusieurs codes car la
procdure tait trop grande...
En VBA :
J'ai tent sans succs :
For I = 12 To 111
Set curCell = Worksheets("Feuil1").Cells(I, 56)
If Abs(curCell.Value) > 0 Then
Sheets("Feuil1").Select
Cells(I, 56).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test"
ActiveSheet.Paste
Sheets("Feuil1").Select
Cells(I, 1).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test2"
ActiveSheet.Paste
Sheets("Feuil1").Select
Cells(I, 3).Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Feuil2").Select
Application.Run "Plannings.xls!Feuil3.Test3"
ActiveSheet.Paste
Sheets("Feuil1").Select
Next
End If
End Sub
L'Application.Run "Plannings.xls!Feuil3.Test et 2 et 3 sert trouver la
dernire ligne de la colonne A, B & C.
Il m'indique Next sans For, en message d'erreur...
Et l, c'est le drame...
Cette solution ne convient pas car si la valeur est inférieure à 1 alors je souhaite mettre BD13 en A1 de mon autre feuille. A condition que BD13 soit supérieur à 1, sinon je souhaite mettre BD14...
Si BD12>1 alors BD12 en A1 sinon rien en A1 Si BD13>1 alors BD13 en A2 sinon rien en A2
MAIS EGALEMENT
Si BD12<1 alors rien en A1 Si BD13>1 alors BD13 en A1
D'ou la macro qui sert à trouver la dernière ligne pour pouvoir coller les informations les unes sous les autres.
J'espére avoir été plus clair dans mon explication.
Merci pour votre aide. Slts.
"MichDenis" a écrit :
Pas sr d'avoir saisi ce que tu veux faire ... mais pourquoi ne pas mettre directement les formules dans la feuil2
En A1 de la feuil2, tu inscris : =SI(Feuil1!BD12>1; Feuil1!BD12;"")
En B1 de la feuil2 =SI(Feuil1!BD12>1; Feuil2!A12;"")
En C1 de la feuil2 =SI(Feuil1!BD12>1;Feuil1!C12;"")
Tu recopies ces formules sur le nombre de lignes requises par ton application. Si tu dois faire toujours rfrence Feuil!BD12 sur toute la plage, tu dois mettre cette adresse en absolue de cette manire : Feuil1!$BD$12 dans les formules.
As-tu rellement besoin de copier ces formules l'aide de VBA... si oui fais le savoir.
"PhilPhil" a crit dans le message de groupe de discussion : Bonjour la communaut,
Aprs avoir parcouru en vain les messages prcdents, je souhaiterais obtenir un dbut de solution ma demande.
En Franais :
Si la valeur de la cellule BD12 de ma feuille 1 est suprieure 0 alors je remercie Excel de faire tout seul, comme un grand, un copier de la cellule BD12 de ma feuille 1 dans la cellule A1 de ma feuille 2, puis de faire un copier de la cellule A12 de ma feuille 1 pour la coller dans la cellule B1 de ma feuille 2 et enfin de faire un copier de la cellule C12 de ma feuille 1 dans la cellule C1 de ma feuille 2. Cette opration est raliser sur les cellules BD12 BD111.
J'ai russi le faire avec : If Range("BD12").Value > 0 Then MAIS cela m'a demand de le faire 99 fois... en plusieurs codes car la procdure tait trop grande...
En VBA :
J'ai tent sans succs :
For I = 12 To 111 Set curCell = Worksheets("Feuil1").Cells(I, 56) If Abs(curCell.Value) > 0 Then Sheets("Feuil1").Select Cells(I, 56).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test" ActiveSheet.Paste Sheets("Feuil1").Select Cells(I, 1).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test2" ActiveSheet.Paste Sheets("Feuil1").Select Cells(I, 3).Select Application.CutCopyMode = False Selection.Copy Sheets("Feuil2").Select Application.Run "Plannings.xls!Feuil3.Test3" ActiveSheet.Paste Sheets("Feuil1").Select Next End If End Sub
L'Application.Run "Plannings.xls!Feuil3.Test et 2 et 3 sert trouver la dernire ligne de la colonne A, B & C. Il m'indique Next sans For, en message d'erreur... Et l, c'est le drame...
MERCI d'avance pour votre aide
FFO
Salut à toi
Ton code me suggère une correction
Le If (If Abs(curCell.Value) > 0 Then ) est dans la boucle For/Next Son End If doit être aussi à l'interieur Or il est à l'extérieur aprés le Next (End If )
La fin de ton code doit être ainsi :
Sheets("Feuil1").Select End If Next End Sub
Ainsi il ne devrait plus Buguer
Fais des essais et dis moi !!!!!
Salut à toi
Ton code me suggère une correction
Le If (If Abs(curCell.Value) > 0 Then ) est dans la boucle For/Next
Son End If doit être aussi à l'interieur
Or il est à l'extérieur aprés le Next (End If )
Le If (If Abs(curCell.Value) > 0 Then ) est dans la boucle For/Next Son End If doit être aussi à l'interieur Or il est à l'extérieur aprés le Next (End If )
La fin de ton code doit être ainsi :
Sheets("Feuil1").Select End If Next End Sub
Ainsi il ne devrait plus Buguer
Fais des essais et dis moi !!!!!
PhilPhil
Bonjour FFO,
Bien vu et merci pour ton aide...
Slts.
"FFO" a écrit :
Salut à toi
Ton code me suggère une correction
Le If (If Abs(curCell.Value) > 0 Then ) est dans la boucle For/Next Son End If doit être aussi à l'interieur Or il est à l'extérieur aprés le Next (End If )
La fin de ton code doit être ainsi :
Sheets("Feuil1").Select End If Next End Sub
Ainsi il ne devrait plus Buguer
Fais des essais et dis moi !!!!!
Bonjour FFO,
Bien vu et merci pour ton aide...
Slts.
"FFO" a écrit :
Salut à toi
Ton code me suggère une correction
Le If (If Abs(curCell.Value) > 0 Then ) est dans la boucle For/Next
Son End If doit être aussi à l'interieur
Or il est à l'extérieur aprés le Next (End If )
Le If (If Abs(curCell.Value) > 0 Then ) est dans la boucle For/Next Son End If doit être aussi à l'interieur Or il est à l'extérieur aprés le Next (End If )
La fin de ton code doit être ainsi :
Sheets("Feuil1").Select End If Next End Sub
Ainsi il ne devrait plus Buguer
Fais des essais et dis moi !!!!!
MichDenis
Ok PhilPhil, je n'ai jamais vu ton code car j'ai l'habitude de visionner les messages dans une fenêtre restreinte...conséquence, une partie de ton message m'a échappé.
Désolé.
Ok PhilPhil, je n'ai jamais vu ton code car j'ai l'habitude de visionner
les messages dans une fenêtre restreinte...conséquence, une partie
de ton message m'a échappé.
Ok PhilPhil, je n'ai jamais vu ton code car j'ai l'habitude de visionner les messages dans une fenêtre restreinte...conséquence, une partie de ton message m'a échappé.