Comment utiliser le décalage de plage de VBA (11 façons)

  • Partage Ça
Hugh West

Si vous recherchez les méthodes les plus simples pour utiliser VBA Range Offset, alors vous trouverez que cet article en vaut la peine. Commençons par les manières d'utiliser l'option VBA Décalage de la gamme.

Télécharger le cahier d'exercices

VBA Décalage de plage.xlsm

11 façons d'utiliser le décalage de plage en VBA

Je dispose du tableau de données suivant, qui contient des informations sur les étudiants d'un établissement d'enseignement supérieur. VBA Décalage de la gamme.

À cette fin, j'ai utilisé Microsoft Excel 365 vous pouvez utiliser toute autre version selon votre convenance.

Méthode 1 : Sélection d'une cellule à l'aide d'une plage VBA

Ici, nous allons sélectionner une cellule contenant le nom Daniel Defoe. À cette fin, nous utiliserons le Fonction RANGE sur VBA .

Step-01 :

➤Go to Développeur Tab>> ; Visual Basic Option

Ensuite, le Éditeur Visual Basic s'ouvrira.

➤Go to Insérer Tab>> ; Module Option

Après cela, un Module sera créé.

Step-02 :

➤Write the following code

 Sub SelectCell() Range("B8").Select End Sub 

Il sélectionnera la cellule B8 .

➤Press F5

Résultat :

De cette façon, vous obtiendrez la cellule contenant Daniel Defoe sélectionné.

Lire la suite : Comment utiliser l'objet Range de VBA dans Excel ?

Méthode 2 : Sélection d'un groupe de cellules contiguës à l'aide d'une plage VBA

Vous pouvez sélectionner une plage de cellules contiguës, comme dans l'exemple suivant Nom de l'élève et la colonne Résultat dans le tableau suivant en suivant cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub ContiguousCells() Range("B5:C10").Select End Sub 

Il sélectionnera les cellules de B5 à C10 .

➤Press F5

Résultat :

Après cela, vous obtiendrez les cellules dans Colonne B et Colonne C sélectionné.

Méthode 3 : Sélection d'un groupe de cellules non contiguës à l'aide de la plage VBA

Supposons que vous vouliez sélectionner les élèves nommés William David et Michael Anthony y compris leurs Id. de courriel Pour sélectionner ces cellules non congruentes, vous pouvez suivre cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub nonContiguous() Range("B6,D6,B9,D9").Select End Sub 

Il sélectionnera les cellules B6 , D6 , B9, et D9 .

➤Press F5

Résultat :

Vous obtiendrez alors les cellules contenant le nom de l'étudiant. William David , Michael Anthony, et leurs Id. de courriel sélectionné.

Méthode 4 : sélection d'un groupe de cellules non contiguës et d'une plage à l'aide d'une plage VBA

Vous pouvez sélectionner simultanément une plage de cellules et certaines cellules non contiguës en suivant cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub nonContiguouswithrange() Range("B5:B10,D6,D10").Select End Sub 

Il sélectionnera la plage de cellules dans la plage B5:B10 et les deux autres cellules D6 , D10 .

➤Press F5

Résultat :

Ensuite, vous obtiendrez les cellules de la colonne Nom de l'élève et deux Identités de courriel pour William David et Donald Paul sélectionné.

Méthode 5 : Sélection d'une plage en utilisant le décalage de plage de VBA

Vous pouvez sélectionner une plage de cellules dans le Colonne Nom de l'élève en utilisant le Fonction OFFSET .

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub selectrangeoffset() Range("A1:A6").Offset(4, 1).Select End Sub 

Au début, Range("A1:A6") sélectionnera la gamme A1:A6 et ensuite Décalage (4, 1) déplacera 4 rangées vers le bas à partir de la cellule A1 et 1 colonne à droite. Ensuite, le même nombre de cellules dans l'intervalle A1:A6 sera sélectionné à partir d'ici.

➤Press F5

Résultat :

De cette manière, vous allez sélectionner la colonne Nom de l'élève .

Méthode-6 : VBA - Décalage de plage négatif

Vous pouvez sélectionner le Colonne Email Id en suivant cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub negativerangeoffset() Range("F11:F16").Offset(-6, -2).Select End Sub 

Au début, Range("F11:F16") sélectionnera la gamme F11:F16 et ensuite Décalage (-6, -2) déplacera 6 rangs vers le haut à partir de la cellule F11 et 2 colonnes à gauche. Ensuite, le même nombre de cellules dans l'intervalle F11:F16 sera sélectionné à partir d'ici.

➤Press F5

Résultat :

Après cela, vous pourrez sélectionner la colonne Id. de courriel .

Lectures similaires :

  • VBA pour chaque cellule d'une plage dans Excel (3 méthodes)
  • Comment compter du texte dans Excel (7 astuces faciles)

Méthode 7 : Sélection d'une plage par rapport à la cellule active

Ici, nous avons une cellule active (cellule A1 ) et par rapport à cette cellule, nous allons sélectionner la plage de données dans cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub actvcell() Range(activecell.Offset(4, 1), activecell.Offset(9, 3)).Select End Sub 

Ici, cellule active est A1

La première partie cellule active.Offset(4, 1) sélectionnera une cellule à 4 rangées vers le bas et 1 colonne vers la droite de la cellule A1 et la deuxième partie cellule active.Offset(9, 3) sélectionnera une cellule à 9 rangées vers le bas et 3 colonnes vers la droite de la cellule A1 .

Enfin, toutes les cellules situées entre ces deux cellules seront sélectionnées.

➤Press F5

Résultat :

Vous pourrez alors sélectionner l'ensemble de la plage de données.

Méthode 8 : Copier une plage

Si vous souhaitez copier une plage de cellules, vous pouvez suivre cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub copyrangeoffset() Range("A1:A6").Offset(4, 1).Copy End Sub 

Au début, Range("A1:A6") sélectionnera la gamme A1:A6 et ensuite Décalage (4, 1) déplacera 4 rangées vers le bas à partir de la cellule A1 et 1 colonne à droite. Ensuite, le même nombre de cellules dans l'intervalle A1:A6 sera sélectionné à partir d'ici.

Enfin, il copiera les valeurs de l'intervalle B5:B10 .

➤Press F5

Résultat :

Après cela, vous serez en mesure de copier la plage de données dans le fichier Colonne Nom de l'élève .

Méthode-9 : Suppression d'une plage

Ici, nous allons montrer la façon de supprimer une plage de données en utilisant VBA code.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub dltrangeoffset() Range("F11:F17").Offset(-7, -2).Delete End Sub 

Tout d'abord, Range("F11:F17") sélectionnera la gamme F11:F17 et ensuite Décalage (-7, -2) va déplacer 7 lignes vers le haut à partir de la cellule F11 et 2 colonnes à gauche. Ensuite, le même nombre de cellules dans l'intervalle F11:F17 sera sélectionné à partir d'ici.

Enfin, il supprimera la plage D4:D10 .

➤Press F5

Résultat :

De cette manière, vous copierez la plage de données dans le fichier Colonne Email Id .

Méthode 10 : utiliser le décalage de plage de VBA pour saisir une valeur

Ici, nous avons une cellule vide (nous avons supprimé la valeur de cette cellule pour expliquer cette méthode) dans le tableau de bord. Colonne Nom de l'élève et nous voulons le remplir avec le nom Joseph Michael En utilisant un VBA nous pouvons facilement entrer cette valeur.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub valuerangeoffset() Range("A1").Offset(6, 1).Value = "Joseph Michael" End Sub 

Tout d'abord, Range("A1") sélectionnera la cellule A1 et ensuite Décalage (6, 1) déplacera 6 rangées vers le bas à partir de la cellule A1 et 1 colonne à droite. Ensuite, la cellule B7 sera sélectionné et enfin, il entrera la valeur "Joseph Michael" dans cette cellule.

➤Press F5

Résultat :

De cette façon, vous obtiendrez le nom Joseph Michael en cellule B7 .

Méthode 11 : Utilisation du décalage de plage de VBA pour obtenir la sortie.

Supposons que vous vouliez écrire Adopté ou Pas de correspondance aux noms des élèves en fonction de la Colonne de résultats Passez ou Échec a été écrite entre parenthèses. Pour trouver cette sous-chaîne dans le fichier Colonne de résultats et l'inscrire dans le Colonne Pass/Fail suivre cette méthode.

Step-01 :

➤Follow Step-01 de Méthode 1

 Sub CheckSubstring() Dim cell As Range For Each cell In Range("C5:C10") If InStr(cell.value, "Pass")> ; 0 Then cell.Offset(0, 1).value = "Passed" Else cell.Offset(0, 1).value = "Failed" End If Next cell End Sub 

Ici, la plage de cellules C5:C10 est sélectionné par Range("C5:C10") qui est le Colonne de résultats

InStr(cell. value, "Pass")> ; 0 est la condition où le nombre est supérieur à zéro (lorsque la cellule contient "Passe" ), la ligne suivante continuera et donnera la sortie dans la cellule adjacente comme suit Adopté Ici, la cellule adjacente sera sélectionnée par cellule.Offset(0, 1) ce qui signifie qu'il se déplacera d'une colonne à droite de la cellule d'entrée.

Si la condition devient fausse, cela signifie qu'une cellule ne contient pas d'informations. "Pass" puis la ligne sous Else s'exécutera et donnera la valeur de sortie dans la cellule adjacente en tant que Échoué .

Cette boucle se poursuit pour chaque cellule.

➤Press F5

Résultat :

Ensuite, vous obtiendrez les résultats suivants Réussi ou échoué dans le Pass/Fail colonne.

Section pratique

Pour vous entraîner vous-même, nous avons fourni un Pratique comme ci-dessous dans une feuille nommée Pratique S'il vous plaît, faites-le vous-même.

Conclusion

Dans cet article, j'ai essayé de couvrir les méthodes les plus simples pour utiliser VBA le décalage de plage dans Excel de manière efficace. Nous espérons que vous trouverez cet article utile. Si vous avez des suggestions ou des questions, n'hésitez pas à nous en faire part.

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.