Table des matières
Lorsque nous disposons d'un grand ensemble de données dans notre classeur Excel, il est parfois pratique de pouvoir parcourir les lignes en boucle pour extraire les résultats spécifiques que nous voulons obtenir. VBA est la méthode la plus efficace, la plus rapide et la plus sûre pour effectuer n'importe quelle opération dans Excel. Dans cet article, nous vous montrerons 11 méthodes différentes pour effectuer les opérations suivantes boucle dans les lignes d'un tableau dans Excel avec l'option Macro VBA .
Télécharger le cahier d'exercices
Vous pouvez télécharger le classeur Excel d'entraînement gratuit à partir d'ici.
Boucler sur les lignes d'un tableau avec VBA.xlsm11 méthodes avec VBA pour parcourir en boucle les lignes d'un tableau dans Excel
En suivant cette section, vous apprendrez à boucle dans les lignes d'un tableau avec 11 méthodes différentes, telles que parcourir les lignes jusqu'à une cellule vide, parcourir les lignes jusqu'à ce qu'une valeur spécifique soit trouvée, parcourir les lignes et colorier une cellule spécifique, etc. avec VBA dans Excel.
Ci-dessus se trouve le jeu de données d'exemple que cet article suivra pour décrire les méthodes.
Embarquez VBA pour parcourir chaque cellule de chaque ligne d'un tableau par numéro de référence de cellule.
Si vous voulez parcourir en boucle chaque cellule de chaque ligne d'un tableau dans votre feuille de calcul Excel et obtenez le le numéro de référence de la cellule comme valeur de retour puis suivez les étapes décrites ci-dessous.
Des pas :
- Au début, appuyez sur Alt + F11 sur votre clavier ou allez dans l'onglet Développeur -> ; Visual Basic pour ouvrir Éditeur Visual Basic .
- Ensuite, dans la fenêtre pop-up du code, dans la barre de menu, cliquez sur Insertion -> ; Module .
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub LoopThroughRowsByRef() LastRow = Range("B" & ; Rows.Count).End(xlUp).Row FirstRow = 4 i = FirstRow FirstColumn = 2 Do Until i> ; LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column Count = FirstColumn Do Until Count> ; LastColumn MsgBox "Currently iterating cell " & ; Chr(Count + 64) & ; i Count = Count + 1 Loop i = i + 1 Loop End Sub
Votre code est maintenant prêt à être exécuté.
- Maintenant, appuyez sur F5 sur votre clavier ou dans la barre de menu, sélectionnez Run -> ; Run Sub/UserForm Vous pouvez également cliquer sur le bouton petite icône Play dans la barre de sous-menu pour exécuter la macro.
- Ou pour observer et comparer visuellement l'ensemble de données et le résultat, vous pouvez sauver le code et revenir à la feuille de travail d'intérêt.
- De là, vous pouvez cliquer sur Macros de la Développeur onglet, sélectionnez le nom de la macro, puis cliquez sur Exécuter .
Après l'exécution réussie du code, regardez le gif ci-dessus pour voir le résultat. Il y aura un pop-up MsgBox en vous montrant le numéro de référence de chaque cellule de chaque ligne du tableau de votre feuille Excel.
Explication du code VBA
LastRow = Range("B" & ; Rows.Count).End(xlUp).Row
Pour obtenir le dernier numéro de ligne du tableau en cherchant dans la colonne B.
FirstRow = 4
Placez la ligne numéro 4, d'où partent nos données.
i = FirstRow
Pour boucler à partir du premier rang.
PremièreColonne = 2
Mettez la colonne numéro 2, d'où partent nos données.
Do Until i> ; LastRow LastColumn = Cells(i, Columns.Count).End(xlToLeft).Column
Commencez à boucler les lignes pour obtenir le dernier numéro de colonne en évaluant la ligne actuelle jusqu'à la dernière ligne.
Count = FirstColumn Do Until Count> ; LastColumn
Incrémentation en boucle de la colonne de la première ligne jusqu'à la dernière ligne.
MsgBox "Cellule en cours d'itération " & ; Chr(Count + 64) & ; i Count = Count + 1 Loop i = i + 1 Loop
Ce morceau de code fonctionne pour traiter, incrémenter après chaque itération et afficher le résultat du code.
Lire la suite : Comment ajouter automatiquement une nouvelle ligne dans un tableau Excel ?
2. mettre en œuvre VBA pour parcourir en boucle chaque cellule de chaque rangée par valeur.
Si vous voulez Boucle à travers chaque cellule de chaque ligne d'un tableau et envoie la valeur résidant dans les cellules comme valeur de retour. alors cette section vous aidera à comprendre comment le faire avec le logiciel VBA Excel.
Vous pouvez le faire avec le ListObject et avec le Gamme DataBodyRange propriété de VBA Nous allons vous montrer le code de la macro avec l'objet et la propriété.
2.1 Avec le ListObject
Les étapes pour parcourir chaque cellule de chaque ligne d'un tableau par valeur de cellule avec le ListObject sur VBA Excel sont indiqués ci-dessous.
Des pas :
- De la même manière que précédemment, ouvrez Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, dans la fenêtre de code, copie le code suivant et pâte il.
Sub LoopThroughRowsByList() Dim iListRow As ListRow Dim iCol As Range For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow End Sub
Votre code est maintenant prêt à être exécuté.
- Après ça, Exécuter la macro comme nous vous l'avons montré dans la section ci-dessus. Le résultat est montré dans le gif ci-dessous.
Il y aura un pop-up MsgBox en vous montrant le valeur portée par chaque cellule de chaque ligne du tableau de votre feuille Excel.
Explication du code VBA
Dim iListRow As ListRow Dim iCol As Range
Définissez les variables.
For Each iListRow In ActiveSheet.ListObjects("TblStudents").ListRows For Each iCol In iListRow.Range MsgBox iCol.Value Next iCol Next iListRow
Ce morceau de code commence d'abord par boucler les lignes du tableau (" TblStudents "Ensuite, entrez les colonnes pour chaque ligne. Après cela, passez la valeur de la cellule dans MsgBox. Ensuite, passez à la colonne suivante. Après avoir fini d'itérer à travers toutes les colonnes d'une ligne, il passe à la ligne suivante et continue le processus d'itération jusqu'à la dernière ligne.
2.2 Avec la propriété DataBodyRange
Pour être plus précis avec les données extraites du tableau, vous pouvez utiliser la fonction Gamme DataBodyRange propriété de ListObject . Gamme DataBodyRange vous enverra le résultat contenant la plage de la liste entre la ligne d'en-tête et la ligne d'insertion.
Les étapes pour savoir comment vous pouvez boucle dans chaque cellule de chaque ligne d'un tableau par valeur de cellule avec le DataBodyRange sur VBA Excel sont indiqués ci-dessous.
Des pas :
- Comme nous l'avons vu précédemment, ouvrir Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub LoopThroughRowsByRange() Dim iRange As Range For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange End Sub
Votre code est maintenant prêt à être exécuté.
- Plus tard, Exécuter la macro et regardez le gif suivant pour voir la sortie.
Il y aura un pop-up MsgBox en vous montrant le valeur portée par chaque cellule de chaque ligne du tableau de votre feuille Excel.
Explication du code VBA
Dim iRange As Range
Définir la variable.
For Each iRange In ActiveSheet.ListObjects("TblStdnt").DataBodyRange MsgBox iRange.Value Next iRange
Ce morceau de code commence d'abord à boucler les lignes du tableau (" TblStdnt " est le nom de notre table) et renvoie une plage de valeurs excluant la ligne d'en-tête de la table. Ensuite, il passe la valeur de la plage dans MsgBox. Puis il passe à la ligne suivante pour extraire la plage et continue le processus d'itération jusqu'à la dernière ligne.
Appliquer la macro VBA pour parcourir les lignes en concaténant les colonnes dans Excel.
Cette section montre comment boucle sur les lignes d'un tableau en concaténant les colonnes avec la première colonne de votre ensemble de données dans Excel.
Par exemple, pour notre jeu de données, nous allons d'abord itérer à travers John dans la cellule B5 et 101 dans la cellule C5 en les concaténant puis en itérant à travers John dans la cellule B5 et 89 dans la cellule D5 en les concaténant à partir de rang 5 .
Laissez-nous vous montrer comment vous pouvez le faire avec VBA dans Excel.
Des pas :
- Au début, ouvrir Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, dans la fenêtre de code, copie le code suivant et pâte il.
Sub LoopThroughRowsByConcatenatingCol() Dim iRange As Range Dim iValue As String With ActiveSheet.ListObjects("TblConcatenate") For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value Else MsgBox "Evaluating " & ; iValue & ; " & ; iRange.Value End If Next iRange End With End Sub
Votre code est maintenant prêt à être exécuté.
- Troisièmement, Exécuter Regardez le gif ci-dessous pour voir le résultat.
Il y aura un pop-up MsgBox en vous montrant le valeur concaténée des cellules de la première et de la deuxième colonne ( John dans la cellule B5 de Colum B et 101 dans la cellule C5 de la colonne C ) et ensuite le valeur concaténée des cellules de la première et de la troisième colonne ( John dans la cellule B5 de Colum B et 89 dans la cellule D5 de la colonne D ) de rangée numéro 5 de votre jeu de données. Et cette opération de concaténation continuera jusqu'à ce qu'elle atteigne la dernière ligne du tableau.
Explication du code VBA
Dim iRange As Range Dim iValue As String
Définir la variable.
Avec ActiveSheet.ListObjects("TblConcatenate")
Ensuite, le code sélectionne le tableau de la feuille active (" TblConcatenate " dans le nom de notre table).
For Each iRange In .DataBodyRange If iRange.Column = .DataBodyRange.Column Then iValue = iRange.Value
Si l'itération trouve une correspondance dans l'intervalle entre l'en-tête de colonne et les lignes, elle stocke la valeur dans le fichier de données de la colonne. iValue variable.
Else MsgBox "Evaluating " & ; iValue & ; " & ; iRange.Value End If Next iRange End With
Si la condition ci-dessus n'est pas remplie, le code envoie la valeur dans la MsgBox et termine la condition. Ensuite, il passe à une autre plage de boucles et continue d'itérer jusqu'à la dernière ligne. Une fois la dernière ligne atteinte, la macro termine l'exécution du code.
4) Macro intégrée permettant de parcourir les lignes en concaténant toutes les colonnes d'un tableau dans Excel.
Dans cette section, nous allons apprendre à concaténer toutes les colonnes que chaque ligne contient dans l'ensemble de données avec VBA dans Excel.
Les étapes à suivre pour exécuter cette opération sont indiquées ci-dessous.
Des pas :
- Tout d'abord, ouvrez Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub LoopThroughRowsByConcatenatingAllCol() Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol") Set iObj = iSheet.ListObjects("TblConcatenateAll") For Each iRow In iObj.ListRows For Each iCol In iObj.ListColumns iResult = iResult & ; " " & ;Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow End Sub
Votre code est maintenant prêt à être exécuté.
- Suivant, Exécuter le code de la macro.
Comme vous pouvez le voir sur le gif ci-dessus, il y a une pop-up MsgBox en vous montrant le valeur concaténée de toutes les colonnes résidant dans chaque ligne à partir du tableau de votre feuille de calcul Excel.
Explication du code VBA
Dim iObj As Excel.ListObject Dim iSheet As Excel.Worksheet Dim iRow As Excel.ListRow Dim iCol As Excel.ListColumn Dim iResult As String
Définissez les variables.
Set iSheet = ThisWorkbook.Worksheets("ConcatenatingAllCol")
Définir le nom de la feuille avec laquelle nous allons travailler (" Concaténation de toutes les couleurs "est le nom de la feuille dans le classeur).
Set iObj = iSheet.ListObjects("TblConcatenateAll")
Définir le nom de la table avec laquelle nous allons travailler (" TblConcatenateAll "est le nom de la table dans notre jeu de données).
Pour chaque iRow dans iObj.ListRows
Démarre l'itération à travers chaque ligne du tableau.
Pour chaque iCol In iObj.ListColumns
Démarre l'itération à travers chaque colonne de chaque ligne du tableau.
iResult = iResult & ; " " & ; Intersect(iRow.Range, iObj.ListColumns(iCol.Name).Range).Value Next iCol MsgBox iResult iResult = "" Next iRow
Stocke le résultat en croisant les valeurs que porte chaque colonne de chaque ligne. Après avoir balayé toutes les colonnes de chaque ligne, il transmet le résultat dans la MsgBox. Puis recommence à boucler la ligne suivante et continue à boucler jusqu'à ce qu'il atteigne la dernière ligne du tableau.
Lire la suite : Comment trier plusieurs colonnes d'un tableau avec Excel VBA (2 méthodes)
5. arrêter l'itération si une valeur est trouvée en parcourant les lignes d'un tableau avec une macro VBA
Supposons que vous voulez boucle à travers les lignes de votre tableau a et arrête la boucle quand il trouve une valeur spécifique Vous pouvez le faire avec un simple code macro.
Apprenons à le faire VBA dans Excel.
Des pas :
- Au début, ouvrir Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, dans la fenêtre de code, copie le code suivant et pâte il.
Sub LoopThroughRowsForValue() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & ; iData.Address End If Next iData End Sub
Votre code est maintenant prêt à être exécuté.
- Plus tard, Exécuter la macro.
- Elle démarrer la boucle et l'arrêter lorsqu'elle trouve la valeur spécifique (" Bordure ") dans la plage et lance le résulte dans le MsgBox .
Comme vous pouvez le voir dans l'image ci-dessus, il y a une pop-up MsgBox qui vous montre l'information suivante adresse de la cellule, $B$10 où nous avons trouvé la valeur spécifiée, " Bordure " .
Explication du code VBA
Dim iData As Range
Définir la variable.
For Each iData In Range("1:15") If iData.Value = "Edge" Then MsgBox "Edge is found at " & ; iData.Address End If Next iData
Ce morceau de code est là pour parcourir en boucle les lignes de 1 à 15. S'il trouve le mot spécifique " Bordure "Il continue à le faire jusqu'à ce qu'il ait fini de parcourir toutes les données des lignes 1 à 15 à la recherche du mot.
Lire la suite : Comment insérer ou supprimer des lignes et des colonnes dans un tableau Excel ?
6. VBA pour parcourir chaque ligne et colorer une valeur spécifique dans Excel
Si vous ne souhaitez pas afficher l'adresse de la cellule de la valeur spécifiée dans la MsgBox, vous pouvez utiliser les méthodes suivantes colorer la cellule qui porte la valeur que vous recherchez.
Apprenons à le faire avec VBA macro.
Des pas :
- De la même manière que précédemment, ouvrez Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub LoopThroughRowsAndColor() Dim iData As Range For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData End Sub
Votre code est maintenant prêt à être exécuté.
- Après ça, Exécuter la macro.
- Elle démarrer la boucle et l'arrêter lorsqu'elle trouve la valeur spécifique (" Bordure ") dans l'intervalle et colorer la cellule avec le ColourIndex que vous avez fourni dans le code.
Comme vous pouvez le voir sur l'image ci-dessus, C ell B10 où nous avons trouvé la valeur spécifiée, " Bordure "est coloré après l'exécution du code.
Explication du code VBA
Dim iData As Range
Définir la variable.
For Each iData In Range("1:15") If iData.Value = "Edge" Then iData.Interior.ColorIndex = 8 End If Next iData
Ce morceau de code est là pour parcourir en boucle les lignes de 1 à 15. S'il trouve le mot spécifique " Bordure "Il continue à le faire jusqu'à ce qu'il ait fini de parcourir toutes les données des lignes 1 à 15 à la recherche du mot.
Lire la suite : Comment utiliser un tableau VLOOKUP basé sur la valeur d'une cellule dans Excel ?
Lectures similaires
- La fonction TABLE existe-t-elle dans Excel ?
- Comment convertir un tableau en liste dans Excel (3 façons rapides)
- Convertir une plage en tableau dans Excel (5 méthodes simples)
- Utiliser efficacement une formule dans un tableau Excel (avec 4 exemples)
- Nom du tableau Excel : tout ce que vous devez savoir
7. mettre en œuvre VBA pour parcourir en boucle chaque ligne et colorer chaque ligne impaire dans Excel
Dans la section précédente, nous avons appris à colorer une cellule qui porte une valeur spécifique. Dans cette section, nous allons apprendre à boucle à travers chaque ligne d'un tableau et colorie chaque ligne impaire avec VBA dans Excel.
Les étapes de l'exécution du processus sont décrites ci-dessous.
Des pas :
- Comme nous l'avons vu précédemment, ouvrir Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub LoopThroughRowsAndColorOddRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With End Sub
Votre code est maintenant prêt à être exécuté.
- Maintenant, Exécuter la macro et regardez l'image suivante pour voir la sortie.
Tous les Les rangées impaires sont colorées. après avoir parcouru en boucle toutes les lignes résidant dans le tableau de la feuille de calcul.
Explication du code VBA
Dim iRow As Long
Définir la variable.
Avec Range("B4").CurrentRegion
Définissez la gamme avec laquelle nous allons travailler.
For iRow = 2 To .Rows.Count If iRow / 2 = Int(iRow / 2) Then .Rows(iRow).Interior.ColorIndex = 8 End If Next End With
Cette partie du code fait référence à l'itération à travers toutes les lignes, en commençant par la ligne suivante de la ligne actuelle, B4 Si le mod de la division des numéros de ligne par 2 est égal au numéro de ligne retourné stocké dans un type entier, alors ce code colore toutes les lignes qui sont extraites par le calcul avec l'indice de couleur fourni dans le code. Il continue à se déplacer dans toutes les lignes jusqu'à ce qu'il atteigne la fin de la plage.
8. implémenter VBA pour boucler les lignes et colorer toutes les lignes paires dans Excel
Dans la section précédente, nous avons appris à colorer chaque ligne impaire d'un tableau. Dans cette section, nous allons apprendre à boucle sur chaque ligne d'un tableau et colorie chaque ligne paire avec une macro VBA dans Excel.
Les étapes de l'exécution du processus sont présentées ci-dessous.
Des pas :
- Tout d'abord, ouvrez Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub LoopThroughRowsAndColorEvenRows() Dim iRow As Long With Range("B4").CurrentRegion For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With End Sub
Votre code est maintenant prêt à être exécuté.
- Suivant, Exécuter la macro et regardez l'image suivante pour voir le résultat.
Tous les les rangées paires sont colorées après avoir parcouru en boucle toutes les lignes résidant dans le tableau de la feuille de calcul.
Explication du code VBA
Dim iRow As Long
Définir la variable.
Avec Range("B4").CurrentRegion
Définissez la gamme avec laquelle nous allons travailler.
For iRow = 3 To .Rows.Count Step 2 .Rows(iRow).Interior.ColorIndex = 8 Next End With
Ce morceau de code commence à itérer après les trois lignes à partir de la ligne actuelle, B4 Il la colore d'abord, puis incrémente le nombre de lignes par 2 et continue à la colorer jusqu'à ce qu'il atteigne la dernière ligne de l'ensemble de données.
Appliquer une macro pour itérer dans les rangées jusqu'à la cellule vide dans Excel.
Si vous voulez que votre code fonctionne comme il le fera parcourt en boucle toutes les lignes du tableau et s'arrête lorsqu'il atteint une cellule vide. Vous pouvez exécuter cette tâche à l'aide de l'outil de gestion de l'information et de la communication. Boucle FOR et le Boucle Do-Until dans Excel VBA .
9.1 Avec la boucle FOR
Étapes à suivre pour parcourir les lignes d'un tableau jusqu'à une cellule vide avec FOR Loop sur VBA Excel sont indiqués ci-dessous.
Des pas :
- Au début, ouvrir Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Après ça, copie le code suivant et pâte dans la fenêtre de code.
Sub ForLoopThroughRowsUntilBlank() Dim x As Integer Application.ScreenUpdating = False NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count Range("B4").Select For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next Application.ScreenUpdating = True End Sub
Votre code est maintenant prêt à être exécuté.
- Ensuite, Exécuter la macro et le résultat est montré dans le gif ci-dessous.
Après avoir exécuté la macro, il a commencé à boucler sur toutes les lignes dans la table et une fois qu'il a atteint le cellule blanche, cellule B8 il a arrêté l'itération .
Explication du code VBA
Dim x As Integer
Définir la variable.
Application.ScreenUpdating = False
Désactiver l'événement de mise à jour de l'écran.
NumRows = Range("B4", Range("B4").End(xlDown)).Rows.Count
Stocker toutes les lignes à partir de Cellule B4 jusqu'au dernier.
Range("B4").Select
Sélectionnez Cellule B4 .
For x = 1 To NumRows ActiveCell.Offset(1, 0).Select Next
Lorsqu'il trouve une cellule vide dans une rangée, il la sélectionne et continue à parcourir les rangées jusqu'à la fin.
Application.ScreenUpdating = True
Activez l'événement de mise à jour de l'écran.
9.2 Avec la boucle Do-Until
Étapes à suivre pour parcourir les lignes jusqu'à une cellule vide avec la boucle Do-Until sur VBA sont indiqués ci-dessous.
Des pas :
- Tout d'abord, ouvrez Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub DoUntilLoopThroughRowsUntilBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop End Sub
Votre code est maintenant prêt à être exécuté.
- Plus tard, Exécuter Le résultat est montré dans le gif suivant.
Après avoir exécuté la macro, elle a démarré boucle à travers toutes les rangées dans la table et une fois qu'il a atteint le cellule blanche, cellule B8 il a arrêté l'itération .
Explication du code VBA
Range("B4").Select
Sélectionnez la cellule à partir de laquelle nous allons travailler.
Do jusqu'à ce que IsEmpty(ActiveCell)
Démarre et continue la boucle jusqu'à ce qu'une cellule vide soit trouvée.
ActiveCell.Offset(1, 0).Select Loop
Lorsqu'une cellule vide est trouvée dans une ligne, il faut la sélectionner et arrêter l'itération.
Macro VBA permettant d'itérer dans les lignes jusqu'à ce qu'il y ait plusieurs cellules vides dans Excel.
Dans la section précédente, vous avez appris à arrêter la boucle lorsqu'une cellule vide est trouvée. Mais que faire si vous ne voulez pas arrêter l'itération jusqu'à ce que plusieurs cellules vides soient trouvées au lieu d'une seule.
Les étapes pour Boucle dans les lignes jusqu'à ce qu'il y ait plusieurs cellules vides se trouvent dans un tableau avec VBA Excel sont présentés ci-dessous.
Des pas :
- Tout d'abord, ouvrez Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub LoopThroughRowsUntilMultipleBlank() Range("B4").Select Do Until IsEmpty(ActiveCell) And IsEmpty(ActiveCell.Offset(1, 0)) ActiveCell.Offset(2, 0).Select Loop End Sub
Votre code est maintenant prêt à être exécuté.
- Maintenant, Exécuter la macro et voir le gif suivant pour la sortie.
Après avoir exécuté la macro, il ne s'est pas arrêté à la première cellule vide, la cellule B8. Il s'est arrêté quand il a trouvé deux cellules vides consécutives sur la cellule B16 .
Explication du code VBA
Range("B4").Select
Sélectionnez la cellule à partir de laquelle nous allons travailler.
Faire jusqu'à ce que IsEmpty(ActiveCell) et IsEmpty(ActiveCell.Offset(1, 0))
Démarre et continue la boucle jusqu'à ce que deux cellules vides consécutives soient trouvées.
ActiveCell.Offset(2, 0).Select Loop
Lorsque deux cellules vides consécutives sont trouvées, il faut les sélectionner et arrêter l'itération.
11. Embarquez VBA pour boucler les lignes en concaténant toutes les colonnes jusqu'à ce qu'elles soient vides dans Excel.
Cette section vous montrera comment boucle sur toutes les lignes d'un tableau et concatène toutes les colonnes jusqu'à une cellule vide est trouvé avec VBA Excel.
Apprenons à le faire avec VBA dans Excel.
Des pas :
- Au début, ouvrir Éditeur Visual Basic de la Développeur et Insérer a Module dans la fenêtre de code.
- Ensuite, copie le code suivant et pâte dans la fenêtre de code.
Sub ConcatenatingAllColUntilBlank() Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String Set iSheet = Sheets("ConcatenatingAllColUntilBlank") iValue = Range("B4").CurrentRegion For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & ; " " & ; iValue(i, J)) Next J MsgBox iResult Next i End Sub
Votre code est maintenant prêt à être exécuté.
- Plus tard, Exécuter la macro et voyez le gif suivant pour le résultat.
Comme vous pouvez le voir dans le gif ci-dessus, il y a une pop-up. MsgBox en vous montrant le valeur concaténée de toutes les colonnes résidant dans chaque ligne à partir du tableau de votre feuille de travail Excel. Mais il s'est arrêté lorsqu'il a atteint la cellule vide .
Explication du code VBA
Dim iSheet As Worksheet Dim iValue As Variant Dim iResult As String
Définissez les variables.
Set iSheet = Sheets("ConcatenatingAllColUntilBlank")
Définir le nom de la feuille avec laquelle nous allons travailler (" Concaténation de AllColUntilBlank "est le nom de la feuille dans le classeur).
iValue = Range("B4").CurrentRegion
Définissez la gamme avec laquelle nous allons travailler.
For i = 2 To UBound(iValue, 1) iResult = "" For J = 1 To UBound(iValue, 2) iResult = IIf(iResult = "", iValue(i, J), iResult & ; " " & ; iValue(i, J)) Next J MsgBox iResult Next i
Ce morceau de code démarre la boucle avec le tableau. Il continue à boucler jusqu'à ce qu'il renvoie le plus grand indice du tableau et la limite inférieure de la première dimension. Ensuite, il entre dans l'itération d'extraction de la limite inférieure de la deuxième dimension. Après cela, il transmet toutes les valeurs extraites dans la fonction iRésultat en les concaténant et en envoyant le résultat dans la MsgBox. Il continue à le faire jusqu'à ce qu'il trouve une cellule vide.
Conclusion
Pour conclure, cet article vous a montré 11 méthodes efficaces pour savoir comment boucle dans les lignes d'un tableau dans Excel avec l'option Macro VBA J'espère que cet article vous a été très utile. N'hésitez pas à poser toutes vos questions sur le sujet.