Sélection plage de données avec Colonnes Variable
Ewilem
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
Ewilem Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Ewilem Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour, ceci est mon premier post.
Je me présente, je m'appelle Izaya, et j'ai besoin d'aide pour un code VBA que je suis actuellement en train d'écrire.
Le but de ce code est de seléctionner une plage de donnée où les colonnes changeraient, avec deux lettres pour colonne.
Pour l'instant je n'essaye de séléctionner qu'une plage de donnée où les colonnes seraient définies par des variables. Je n'obtiens pour le moment que des erreurs, tout d'abord la 1004, puis la 13.
Mon code est ainsi :
L'erreur se trouve à la ligne 24.
Si quelqu'un pourrait me donner un élément de réponse, cela m'aiderait grandement..
Bonne journée,
Izaya
Je me présente, je m'appelle Izaya, et j'ai besoin d'aide pour un code VBA que je suis actuellement en train d'écrire.
Le but de ce code est de seléctionner une plage de donnée où les colonnes changeraient, avec deux lettres pour colonne.
Pour l'instant je n'essaye de séléctionner qu'une plage de donnée où les colonnes seraient définies par des variables. Je n'obtiens pour le moment que des erreurs, tout d'abord la 1004, puis la 13.
Mon code est ainsi :
1 Sub TestSelectionPlage()
2 Windows("DonneesTransfert.xlsm").Activate
3 Dim k As Integer 'Valeur ASCII COLONNE
4 Dim kk As Integer 'Valeur ASCII COLONNE
5 Dim MaPlage As Range
6 Dim l As Integer 'Valeur ASCII COLONNE
7 Dim ll As Integer 'Valeur ASCII COLONNE
8
9 Dim m As String 'Valeur en chaîne
10 Dim mm As String 'Valeur en chaîne
11
12 Dim q As String 'Valeur en chaîne
13 Dim qq As String 'Valeur en chaîne
14
15 k = 67 'Lettre C
16 kk = 72 'Lettre H
17 l = 67 'Lettre C
18 ll = 80 'Lettre P
19 m = Chr(k)
20 mm = Chr(kk)
21 q = Chr(l)
22 qq = Chr(ll)
23
24 Set MaPlage = Range(Range("A1").Offset(7, m & mm & 2), Range("A1").Offset(7, q & qq & 300))
25 MaPlage.Select
26 End Sub
L'erreur se trouve à la ligne 24.
Si quelqu'un pourrait me donner un élément de réponse, cela m'aiderait grandement..
Bonne journée,
Izaya
A voir également:
- Vba range avec variable colonne
- Déplacer colonne excel - Guide
- Trier colonne excel - Guide
- Colonne word - Guide
- Formule somme excel colonne - Guide
- Vba excel sélectionner une plage de cellules variable ✓ - Forum VB / VBA
2 réponses
Bonjour
Je ne vois pas trop où tu veux en venir
Peut être quelque chose comme ça (les variables adr1 et adr2 te permettront de vérifier si les adresses sont correctes)
Cdlmnt
Je ne vois pas trop où tu veux en venir
Peut être quelque chose comme ça (les variables adr1 et adr2 te permettront de vérifier si les adresses sont correctes)
Dim adr1 As String Dim adr2 As String adr1 = Cells(7 + 2, m & mm).Address adr2 = Cells(7 + 300, q & qq).Address Set MaPlage = Range(adr1 & ":" & adr2)
Cdlmnt
Ewilem
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
Merci, c'est exactement ça !! :D
Bonjour Izaya, bonjour le forum,
Pourquoi ne pas utiliser justement le numéro de la colonne comme variable avec le style de référence L1C1 ? Range("A1") devient Cells(1, 1) / Range("C7") devient Cells(7, 3). Ça te faciliterait les choses.
Je n'ai pas bien compris la plage que tu voulais sélectionner mais tu devrais y arriver en adaptant le code ci-dessous :
Pourquoi ne pas utiliser justement le numéro de la colonne comme variable avec le style de référence L1C1 ? Range("A1") devient Cells(1, 1) / Range("C7") devient Cells(7, 3). Ça te faciliterait les choses.
Je n'ai pas bien compris la plage que tu voulais sélectionner mais tu devrais y arriver en adaptant le code ci-dessous :
Sub TestSelectionPlage() Dim O As Worksheet Dim COL As Integer Dim MaPlage As Range 'pour voir le numéro des colonnes : menu Fichier / Option / Formules / cocher_décocher : Style de référence L1C1 Windows("DonneesTransfert.xlsm").Activate Set O = ActiveWorkbook.Worksheets("Feuil1") 'à adapter à ton cas COL = 3 '=> colonne C ('à adapter à ton cas) Set MaPlage = O.Range(O.Cells(7, COL), O.Cells(7, COL + 300)) '=>C7:KQ7 (à adapter à ton cas) MaPlage.Select End Sub