Copier coller plage de cellule variable excel vba

Fermé
flavinou7263 Messages postés 32 Date d'inscription mardi 9 février 2016 Statut Membre Dernière intervention 27 mars 2020 - 9 févr. 2016 à 22:12
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 - 10 févr. 2016 à 12:32
Bonjour,
j'ai un problème dans ma macro excel mais je ne sais pas où.
Elle doit :
Sélectionner la colonne C entre les lignes g et h (cf macro)
Normalement les valeurs sont dans l'ordre croissant
Copier la sélection et la coller (cf macro)
Le critère de sélection se trouve dans la colonne E et doit être compris entre 2 valeurs d'une autre feuille (cf macro)

Sub Nom()
Dim a As Range
Dim b As Range
Dim c As Range
Dim d As Range
Dim e As Range
Dim f As Range
Dim g As Integer
Dim h As Integer

Sheets("Paramètres").Select
a = Range("S3").Select
b = Range("T3").Select

Sheets("Name").Select
For i = 2 To 500
c = Range("E" & i).Select

If c >= a Then
g = i
d = Range("C" & g).Select
Exit For
End If
Next i

For j = g To 500
e = Range("E" & j).Select

If e >= Range("E" & g).Select Then
If e <= b Then
If (Range("E" & j + 1).Select > e) Then

Else
h = j
f = Range("C" & h).Select
Exit For
End If
End If
End If
Next j

Range("C" & g & ":C" & h).Select

Application.CutCopyMode = False
Selection.Copy
Range("I2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

End Sub


3 réponses

Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524
10 févr. 2016 à 08:49
Bonjour,

Ton code a besoin d'un bon coup de balayette (par exemple, il ne devrait y avoir aucun Select).

Pour permettre aux intervenants de t'aider efficacement, je te conseillerais de joindre un fichier et quelques explications sur le résultat attendu.


Pour cela, tu peux utiliser https://www.cjoint.com/

A+
0
flavinou7263 Messages postés 32 Date d'inscription mardi 9 février 2016 Statut Membre Dernière intervention 27 mars 2020
10 févr. 2016 à 09:05
Merci mais jai résolu mon problème de code.
Juste pour confirmation, pour exécuter ce code je dois bien faire ca :
Sub calcul()
Call Nom
End Sub
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524 > flavinou7263 Messages postés 32 Date d'inscription mardi 9 février 2016 Statut Membre Dernière intervention 27 mars 2020
10 févr. 2016 à 09:21
Dans ce cas, l'utilisation de Call pour appeler la procédure n'est pas recommandée.
Tu peux te contenter d'écrire :
Sub calcul()
Nom
End Sub


A+
0
flavinou7263 Messages postés 32 Date d'inscription mardi 9 février 2016 Statut Membre Dernière intervention 27 mars 2020
10 févr. 2016 à 09:37
Même dans le cas d'une macro avec une dizaine de Sub ?
0
Gyrus Messages postés 3334 Date d'inscription samedi 20 juillet 2013 Statut Membre Dernière intervention 9 décembre 2016 524 > flavinou7263 Messages postés 32 Date d'inscription mardi 9 février 2016 Statut Membre Dernière intervention 27 mars 2020
10 févr. 2016 à 11:35
Même pour une vingtaine ;)

Call est généralement utilisé lorsque l'expression appelée ne commence pas par un identificateur (ou par certains programmeurs pour rendre l'instruction plus "lisible").

A+
0