Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Toujours apprentissage VBA

6 réponses
Avatar
jean berti
Bonjour à tous

Mon problème :
comment ajouter une cellule F23 dans la sélection ""Range("B3:N3").Select""
et de la copier dans la colonne O avec bien sur
"[B65000].End(xlUp).Offset(1, 0).Select"
Si je mets "Range("B3:N3,F23") cela ne marche pas
erreur 1004 _ impossible d'executer cette commande sur des sélections
multiples
Sub zaza()
Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Merci à tous

Jean Berti

6 réponses

Avatar
FFO
Salut à toi

Quand tu sélectionnes par l'instruction Range("B3:N3") tu détermines une
plage selon 2 repères :
Le point de départ : B3
Le point d'arrivé : N3

si tu rajoute un troisième repère Excel ne comprend plus rien

en conclusion 2 possibilités

Soit tu augmentes ta plage pour inclure F23 ainsi :

Le point de départ : B3
le point d'arrivé : N23

Ce qui donne Range("B3:N23") qui englobe donc F23
Inconvénient tu embarques toutes les cellules de la nouvelle plage (peut
être un peu beaucoup)

Soit tu réalise l'opération en 2 fois

1° Fois :

Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse

2° Fois :

sheets("Onglet de départ").Select
Range("F23").Copy
Sheets("Cours").Activate
Range("O65000").end(xlup).offset(1,0).select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse


Le tout faisant :

Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
sheets("Onglet de départ").Select
Range("F23").Copy
Sheets("Cours").Activate
Range("O65000").end(xlup).offset(1,0).select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse


Celà devrait être nettement mieux

Dis moi !!!!


Bonjour à tous

Mon problème :
comment ajouter une cellule F23 dans la sélection ""Range("B3:N3").Select""
et de la copier dans la colonne O avec bien sur
"[B65000].End(xlUp).Offset(1, 0).Select"
Si je mets "Range("B3:N3,F23") cela ne marche pas
erreur 1004 _ impossible d'executer cette commande sur des sélections
multiples
Sub zaza()
Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse

Merci à tous

Jean Berti





Avatar
jean berti
Bonjour FFO

Merci beaucoup de tes explications pédagogiques.
J'avais bien pensé à le faire en 2 fois, mais je croyais qu'il y aurait 1
combine.
Quand tu sélectionnes par l'instruction Range("B3:N3") tu détermines une
plage selon 2 repères :
Le point de départ : B3
Le point d'arrivé : N3
si tu rajoute un troisième repère Excel ne comprend plus rien

Range("D13,D20,F16,L20:L36,C20:C36,E13,M15,F21:F36").ClearContents
Comment alors expliquer que cela fonctionne?
Excuses moi mais j'aime bien comprendre et l'aide (excel 2003),un peu vague.
Merci encore

Jean Berti



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

Salut à toi

Quand tu sélectionnes par l'instruction Range("B3:N3") tu détermines une
plage selon 2 repères :
Le point de départ : B3
Le point d'arrivé : N3

si tu rajoute un troisième repère Excel ne comprend plus rien

en conclusion 2 possibilités

Soit tu augmentes ta plage pour inclure F23 ainsi :

Le point de départ : B3
le point d'arrivé : N23

Ce qui donne Range("B3:N23") qui englobe donc F23
Inconvénient tu embarques toutes les cellules de la nouvelle plage (peut
être un peu beaucoup)

Soit tu réalise l'opération en 2 fois

1° Fois :

Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse

2° Fois :

sheets("Onglet de départ").Select
Range("F23").Copy
Sheets("Cours").Activate
Range("O65000").end(xlup).offset(1,0).select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse


Le tout faisant :

Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
sheets("Onglet de départ").Select
Range("F23").Copy
Sheets("Cours").Activate
Range("O65000").end(xlup).offset(1,0).select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse


Celà devrait être nettement mieux

Dis moi !!!!


Bonjour à tous

Mon problème :
comment ajouter une cellule F23 dans la sélection
""Range("B3:N3").Select""
et de la copier dans la colonne O avec bien sur
"[B65000].End(xlUp).Offset(1, 0).Select"
Si je mets "Range("B3:N3,F23") cela ne marche pas
erreur 1004 _ impossible d'executer cette commande sur des sélections
multiples
Sub zaza()
Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse

Merci à tous

Jean Berti







Avatar
FFO
Rebonjours à toi
Ce que tu peux réaliser pour certaines instructions (Select, clear,
clearcontents, etc...)
tu ne peux en faire de même pour d'autres instructions comme Copy qui ne
peuvent se réaliser que dans un cadre bien précis de selection de cellules
Si ta commande :
Range("B3:N3,F23").Select n'a pas fonctionnée ce n'est pas au regard de la
commande Select mais plutôt de la commande Copy qui suit pour la ligne :
Selection.Copy

Donc en résumé la ligne Range("B3:N3,F23").Select n'est pas à incriminer
contrairement à ce que je t'ai dis dans ma première réponse (méaculpa !!!)
c'est les différentes cellules définies qui en ont résulté qui n'est
concevable avec la commande Copy

Essaies de réaliser des sélections multibles avec ta souris et la touche
Ctrl et tu constateras que pour bon nombre d'entre elles une copie est
impossible

J'espère avoir éclairé ta lanterne

Dis moi !!!!




Bonjour FFO

Merci beaucoup de tes explications pédagogiques.
J'avais bien pensé à le faire en 2 fois, mais je croyais qu'il y aurait 1
combine.
Quand tu sélectionnes par l'instruction Range("B3:N3") tu détermines une
plage selon 2 repères :
Le point de départ : B3
Le point d'arrivé : N3
si tu rajoute un troisième repère Excel ne comprend plus rien

Range("D13,D20,F16,L20:L36,C20:C36,E13,M15,F21:F36").ClearContents
Comment alors expliquer que cela fonctionne?
Excuses moi mais j'aime bien comprendre et l'aide (excel 2003),un peu vague.
Merci encore

Jean Berti



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

Salut à toi

Quand tu sélectionnes par l'instruction Range("B3:N3") tu détermines une
plage selon 2 repères :
Le point de départ : B3
Le point d'arrivé : N3

si tu rajoute un troisième repère Excel ne comprend plus rien

en conclusion 2 possibilités

Soit tu augmentes ta plage pour inclure F23 ainsi :

Le point de départ : B3
le point d'arrivé : N23

Ce qui donne Range("B3:N23") qui englobe donc F23
Inconvénient tu embarques toutes les cellules de la nouvelle plage (peut
être un peu beaucoup)

Soit tu réalise l'opération en 2 fois

1° Fois :

Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse

2° Fois :

sheets("Onglet de départ").Select
Range("F23").Copy
Sheets("Cours").Activate
Range("O65000").end(xlup).offset(1,0).select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse


Le tout faisant :

Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
sheets("Onglet de départ").Select
Range("F23").Copy
Sheets("Cours").Activate
Range("O65000").end(xlup).offset(1,0).select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse


Celà devrait être nettement mieux

Dis moi !!!!


Bonjour à tous

Mon problème :
comment ajouter une cellule F23 dans la sélection
""Range("B3:N3").Select""
et de la copier dans la colonne O avec bien sur
"[B65000].End(xlUp).Offset(1, 0).Select"
Si je mets "Range("B3:N3,F23") cela ne marche pas
erreur 1004 _ impossible d'executer cette commande sur des sélections
multiples
Sub zaza()
Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse

Merci à tous

Jean Berti












Avatar
LSteph
Bonsoir,

A éviter... .Select
il n'est absolument pas nécessaire de sélectionner pour agir
.Select suivi de .selection
est une nécessité de l'enregistreur, pas du programmeur!
Supposons ta feuille d'origine Feuil1

Sub aaazzzz()
Feuil1.Range("B3:N3").Copy
With Worksheets("Cours")
.[B65536].End(xlUp).Offset(1, 0).PasteSpecial _
Paste:=xlValues, Operation:=xlNone, _
SkipBlanks:úlse, Transpose:úlse
.Range("n65536").End(xlUp).Offset(0, 1) = Feuil1.Range("F23")
End With
End Sub

'Cordialement.

'lSteph

Bonjour FFO

Merci beaucoup de tes explications pédagogiques.
J'avais bien pensé à le faire en 2 fois, mais je croyais qu'il y aurait 1
combine.
Quand tu sélectionnes par l'instruction Range("B3:N3") tu détermines une
plage selon 2 repères :
Le point de départ : B3
Le point d'arrivé : N3
si tu rajoute un troisième repère Excel ne comprend plus rien

Range("D13,D20,F16,L20:L36,C20:C36,E13,M15,F21:F36").ClearContents
Comment alors expliquer que cela fonctionne?
Excuses moi mais j'aime bien comprendre et l'aide (excel 2003),un peu vague.
Merci encore

Jean Berti



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

Salut à toi

Quand tu sélectionnes par l'instruction Range("B3:N3") tu détermines une
plage selon 2 repères :
Le point de départ : B3
Le point d'arrivé : N3

si tu rajoute un troisième repère Excel ne comprend plus rien

en conclusion 2 possibilités

Soit tu augmentes ta plage pour inclure F23 ainsi :

Le point de départ : B3
le point d'arrivé : N23

Ce qui donne Range("B3:N23") qui englobe donc F23
Inconvénient tu embarques toutes les cellules de la nouvelle plage (peut
être un peu beaucoup)

Soit tu réalise l'opération en 2 fois

1° Fois :

Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse

2° Fois :

sheets("Onglet de départ").Select
Range("F23").Copy
Sheets("Cours").Activate
Range("O65000").end(xlup).offset(1,0).select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse


Le tout faisant :

Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse
sheets("Onglet de départ").Select
Range("F23").Copy
Sheets("Cours").Activate
Range("O65000").end(xlup).offset(1,0).select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse


Celà devrait être nettement mieux

Dis moi !!!!


Bonjour à tous

Mon problème :
comment ajouter une cellule F23 dans la sélection
""Range("B3:N3").Select""
et de la copier dans la colonne O avec bien sur
"[B65000].End(xlUp).Offset(1, 0).Select"
Si je mets "Range("B3:N3,F23") cela ne marche pas
erreur 1004 _ impossible d'executer cette commande sur des sélections
multiples
Sub zaza()
Selection.NumberFormat = "0.00"
Range("B3:N3").Select
Selection.Copy
Sheets("Cours").Activate
[B65000].End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:úlse

Merci à tous

Jean Berti











Avatar
LSteph
... ceci dit c'était pour reprendre l'exemple

On pourrait également boucler les cellules
de Range("B3:n3,f23")
en décalant depuis [b65536].end(xlup) (2)

mais

je préfère grandement le style de ce qu'AV t'a proposé
à ta question analogue du 28/06.

Espérant t'avoir ouvert d'autres fenêtres.

Cordialement.

lSteph
Avatar
jean berti
Bonsoir

Merci de vos explications tres précises.
Je pense avoir compris le fonctionnement.
Merci à vous 2.
Jean Berti
"LSteph" a écrit dans le message de news:

... ceci dit c'était pour reprendre l'exemple

On pourrait également boucler les cellules
de Range("B3:n3,f23")
en décalant depuis [b65536].end(xlup) (2)

mais

je préfère grandement le style de ce qu'AV t'a proposé
à ta question analogue du 28/06.

Espérant t'avoir ouvert d'autres fenêtres.

Cordialement.

lSteph