VBA Excel - sélection plages
Résolu/Fermé
sygmajf99
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
6 juillet 2012
-
11 janv. 2011 à 04:04
sygmajf99 Messages postés 14 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 6 juillet 2012 - 11 janv. 2011 à 14:19
sygmajf99 Messages postés 14 Date d'inscription lundi 10 janvier 2011 Statut Membre Dernière intervention 6 juillet 2012 - 11 janv. 2011 à 14:19
A voir également:
- VBA Excel - sélection plages
- Liste déroulante excel - Guide
- Si et excel - Guide
- Word et excel gratuit - Guide
- Aller à la ligne excel - Guide
- Déplacer une colonne excel - Guide
3 réponses
Mytå
Messages postés
2973
Date d'inscription
mardi 20 janvier 2009
Statut
Contributeur
Dernière intervention
20 décembre 2016
950
11 janv. 2011 à 04:19
11 janv. 2011 à 04:19
Salut le forum
Regarde si cela pourrait te faire avancer
Référence : Silkyroad Developpez.Com
Mytå
Regarde si cela pourrait te faire avancer
Function CreationTableau(ParamArray Cellules1()) As Variant 'Adapté de: 'http://support.microsoft.com/?kbid=213403 ' Dim VarTab() As Variant Dim Temp As Variant Dim i As Integer Dim w As Integer, X As Integer, y As Integer, z As Integer i = 1 'Boucle sur les éléments du tableau de paramètres. For X = 0 To UBound(Cellules1) If TypeName(Cellules1(X)) = "Range" Then Set Temp = Cellules1(X) 'Vérifie si le paramètre passé à la fonction est une cellule simple 'ou une plage. If IsArray(Temp) Then 'Intègre chaque cellule de la plage dansle tableau. For y = 1 To UBound(Temp.Value) For z = 1 To UBound(Temp.Value, 2) 'Permet de filtrer les cellules vides. 'If Not IsEmpty(Temp(y, z).Value) Then ReDim Preserve VarTab(1 To i) VarTab(i) = Temp(y, z).Value i = i + 1 'End If Next z Next y Else 'Permet de filtrer les cellules vides. 'If Not IsEmpty(Temp) Then 'Intègre la cellule dans le tableau. ReDim Preserve VarTab(1 To i) VarTab(i) = Temp i = i + 1 'End If End If Else ReDim Preserve VarTab(1 To i) VarTab(i) = Cellules1(X) i = i + 1 End If Next X CreationTableau = VarTab End Function Sub Test() Dim Tb As Variant, xTab As Variant Tb = CreationTableau(Range("A1:A10"), Range("C1:C10"), Range("E1"), 80) '--- Vérifie si le tableau est vide --- On Error Resume Next 'xTab va prendre la valeur Empty si le tableau est vide. xTab = UBound(Tb) On Error GoTo 0 'Renvoie le nombre d'éléments du tableau If Not IsEmpty(xTab) Then MsgBox UBound(Tb) End Sub
Référence : Silkyroad Developpez.Com
Mytå
Utilisateur anonyme
11 janv. 2011 à 08:30
11 janv. 2011 à 08:30
Bonjour sygmajf99
Je peux te proposer :
Sub Impression_Multi()
Dim a As Integer
Dim b As Integer
Dim s as String
Dim col1, col2 as String
choix1 = Sheets("Impression").Cells(1, 1).Value
choix2 = Sheets("Impression").Cells(2, 1).Value
ligne = Sheets("Rép-Questions COM").Range("a4").End(xlDown).Row
a = choix1 + 4
b = choix2 + 4
s = Cells(a, a).Address
pos1 = InStr(1, s, "$", 1)
pos2 = InStr(pos1 + 1, s, "$", 1)
col1 = Mid(s, pos1 + 1, pos2 - (pos1 + 1))
s = Cells(b, b).Address
pos1 = InStr(1, s, "$", 1)
pos2 = InStr(pos1 + 1, s, "$", 1)
col2 = Mid(s, pos1 + 1, pos2 - (pos1 + 1))
Range("A" & 4 & ":" & "C" & ligne & "," & col1 & 4 & ":" & col2 & ligne).Select
End Sub
Cdlmt
Patrice
Je peux te proposer :
Sub Impression_Multi()
Dim a As Integer
Dim b As Integer
Dim s as String
Dim col1, col2 as String
choix1 = Sheets("Impression").Cells(1, 1).Value
choix2 = Sheets("Impression").Cells(2, 1).Value
ligne = Sheets("Rép-Questions COM").Range("a4").End(xlDown).Row
a = choix1 + 4
b = choix2 + 4
s = Cells(a, a).Address
pos1 = InStr(1, s, "$", 1)
pos2 = InStr(pos1 + 1, s, "$", 1)
col1 = Mid(s, pos1 + 1, pos2 - (pos1 + 1))
s = Cells(b, b).Address
pos1 = InStr(1, s, "$", 1)
pos2 = InStr(pos1 + 1, s, "$", 1)
col2 = Mid(s, pos1 + 1, pos2 - (pos1 + 1))
Range("A" & 4 & ":" & "C" & ligne & "," & col1 & 4 & ":" & col2 & ligne).Select
End Sub
Cdlmt
Patrice
sygmajf99
Messages postés
14
Date d'inscription
lundi 10 janvier 2011
Statut
Membre
Dernière intervention
6 juillet 2012
11 janv. 2011 à 14:19
11 janv. 2011 à 14:19
Merci.
Myta : Que doit-on mettre à la place de Cellules1(X) dans ton code ?
AGi67.fr : Merci, ca fonctionne super bien. J'ai compris le code après quelques recherches.
Myta : Que doit-on mettre à la place de Cellules1(X) dans ton code ?
AGi67.fr : Merci, ca fonctionne super bien. J'ai compris le code après quelques recherches.