Copier coller plage de cellule variable excel vba
flavinou7263
Messages postés
32
Date d'inscription
Statut
Membre
Dernière intervention
-
Gyrus Messages postés 3334 Date d'inscription Statut Membre Dernière intervention -
Gyrus Messages postés 3334 Date d'inscription Statut Membre Dernière intervention -
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
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
A voir également:
- Vba copier une plage de cellule variable
- Comment copier une vidéo youtube - Guide
- Excel compter cellule couleur sans vba - Guide
- Super copier - Télécharger - Gestion de fichiers
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
3 réponses
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+
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+
Juste pour confirmation, pour exécuter ce code je dois bien faire ca :
Sub calcul()
Call Nom
End Sub
Tu peux te contenter d'écrire :
A+
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+