Résultats pour "boucle colonnes"

3'385 résultats pour cette recherche

Bonjour à tous,

Je suis en train d'élaborer un outils sur Excel et j'ai un petits soucis que je n'arrive pas à résoudre :

Ce post fait suite à un autre contenant le même fichier, mais les deux posts sont indépendants, si vous voulez jeter un coup d’œil :

Liste déroulante dynamique en cascade

L'idée en gros c'est de demander à des personnes d'aller relever des prix dans des supermarchés (bien évidemment c'est un exemple). Et après avoir constitué la liste de course, je doit concevoir facilement la base de donnée qui me permettra de traiter les résultats. Une grosse base de donnée est alors élaborée à partir de deux tableau indépendants qui doivent se regrouper.

Dans le tableau 2 en vert (S2:U20), un premier tableau définit qui doit aller faire les courses, quand et ou?

Le tableau en fond gris (A21:G32) élabore la liste de course qui doit être faite chaque semaine.

Je doit donc regroupé ces deux tableaux en une seule base de donnée où il n'y aura plus qu'a rentrer les prix relevés.

Sur la plage (A42:I999) vous trouverez ce que je souhaite obtenir.

J'ai bien essayer de créer une macro "liste_article", mais je n'arrive pas à construire correctement mes boucles. Quelques chose m'échappe, ce qui fait que les données sont écrites l'une sur l'autre, au lieu d'être écrite l'une après l'autre...

Est-ce que j'utilise les bonnes boucles? While, Do loop, For,...?

Merci d'avance pour vos conseils de résolution.

Je me tiens à disposition pour des questions éventuelles si je n'ai pas été assez clair.

Bonjour à tous

je souhaite avoir votre expertise pour ameliorer ma macro, apres plusieurs essais et recherches internet je ne trouve pas de solution qui fonctionne c est pourquoi je me tourne vers vous.

La macro qui suit a pour but : ouvrir l explorateur de fichier, permettre à l´utilisateur de selectionner 1 ou plusieurs fichiers, d en extraire des données et de les copier dans le fichier de la macro.

Le code suivant fonctionne pour 1 fichier :

Sub Macro1()

End Sub

Actuellement le fichier copie colle tout sur la meme colonne je voudrais donc ajouter une conditions qui dit : si le colonne i est vide alors copier à cette endroit sinon se decaler à la prochaine vide et copier ici, je voudrais que la macro fonctionne que je selectionne 10 fichiers d un coup ou 1 par 1. par exemple si j en ai selectionner 3 fichier, mes colonnes de 1 à 6 sont pleines et si j´ajoute une nouveau fichier alors les colonnes 7 et 8 se remplissent.

J´espere que mon explication est compréhensible

Ps : je suis débutant en VBA il est possible que meme si ce code fonctionne il y ait des abérrations

Ps2 : je joint ma macro et 2 fichiers avec des données à extraire

Pouvez vous s´il vous plait m´aider

Merci par avance

Jules

6test1.xlsm (18.34 Ko)

Bonjour à tous,

Premier post sur ce forum

Mon niveau de VBA ne me permet pas de résoudre le problème suivant (qui ne me semble pas solvable simplement avec une formule excel). Je pourrais faire un si(nb.si( pour répondre à ma problématique de contenu de cellule, ainsi qu'un si.conditions pour interroger de multiples conditions, mais la si.conditions est limitée à 127 requêtes (j'en ai plus de 1000 de le fichier original).

Le but de la manipulation est de faire du mapping : pour chacune des cellules de la colonne C, il existe une cellule de la colonne F dont la valeur est contenue dans cette cellule de la colonne C.

Par exemple, la cellule C6 qui contient 3 blocs de textes séparés par des "_", le premier bloc "exemple1" correspond bien à la cellule F6 "exemple1" : dans ce cas la fonction doit renvoyer en D6 le contenu de G6.

Pour mes besoins (et pour faciliter la compréhension) : il n'existe pas de cas de figure où le contenu d'une cellule C soit égal à plusieurs cellules de la colonne F.

Au sein de mon fichier excel vous trouverez un descriptif de mon besoin et des itérations nécessaires et une vision cible du fichier complété après application de la macro souhaitée.

Est-ce qu'un habitué des "double boucles" pourrait m'aider sur ce fichier, ou simplement me mettre sur la voie ?

Merci beaucoup pour votre aide,

Bonsoir!

Je voudrais savoir si, avec un énoncé tel que :

Écrire le programme EXO_04 qui affiche dans les cellules A1 à A100 de la feuille 2 les nombres allant de 1 à 100.

Concrètement, la cellule A1 contient le nombre 1, la cellule A2 contient le nombre 2, …, la cellule A100 contient le nombre 100.

Est ce que entre utiliser :

SUB programme()

DIM ligne AS INTEGER

ligne = 1

WHILE ligne <= 100

SHEETS("Feuil2").CELLS(ligne,1) = ligne

ligne = ligne + 1

WEND

END SUB

ou :

SUB programme()

DIM ligne AS INTEGER

FOR ligne = 1 TO 100

SHEETS("Feuil2").CELLS(ligne,1) = ligne

NEXT ligne

END SUB

Est-ce que cela revient au même, autrement dit, les deux sont-ils corrects, on peut faire soit l'un soit l'autre ou c'est un seul des deux qui conviendra ici ?

Merci d'avance.

Bonjour le forum,

J'ai ce code (voir si dessous), il me fait presque le travail demandé. Ce que je cherche à faire en plus,c 'est que tant que de "L7" jusqu'à "L" est dernière ligne non vide une date est inférieur ou égale à aujourd’hui, il recommence la boucle. Merci

Dim DernLigne As Long
DernLigne = Sheets("Echéance").Range("B7").End(xlDown).Row
Dim DernLigne2 As Long
DernLigne2 = Sheets("Mouvement").Range("A1").End(xlDown).Row + 1
Dim i As Integer
Dim LaDate, echeance
Dim Calcul As Long

For i = 7 To DernLigne
If Sheets("Echéance").Range("G" & i).Value = "Mensuel" Then
    If Sheets("Echéance").Range("L" & i).Value <= Now() Then
      Sheets("Mouvement").Range("A" & DernLigne2).Value = Range("F" & i).Value
      Sheets("Mouvement").Range("B" & DernLigne2).Value = Range("H" & i).Value
      Sheets("Mouvement").Range("C" & DernLigne2).Value = Range("E" & i).Value
        If Sheets("Echéance").Range("H" & i).Value = "Compte Chèque" Then
        Calcul = Sheets("Echéance").Range("E" & i).Value
        Sheets("Mouvement").Range("G2").Value = Sheets("Mouvement").Range("G2").Value + Calcul
        Else: Sheets("Echéance").Range("H" & i).Value = "LEP Tatiana"
        Calcul = Sheets("Echéance").Range("E" & i).Value
        Sheets("Mouvement").Range("H2").Value = Sheets("Mouvement").Range("H2").Value + Calcul
        End If
      Sheets("Mouvement").Range("D" & DernLigne2).Value = Range("B" & i).Value
      Sheets("Mouvement").Range("E" & DernLigne2).Value = Range("C" & i).Value

      LaDate = Sheets("Echéance").Range("F" & i).Value
      echeance = DateAdd("m", 1, CDate(LaDate))
      Sheets("Echéance").Range("F" & i).Value = echeance

      DernLigne2 = DernLigne2 + 1
    End If
    End If
Next

Bonjour à tous,

je ne suis pas particulièrement doué en VBA mais je commence à me débrouiller.

J'ai cependant quelques problèmes pour faire une boucle dans une autre boucle..

Un coup, excel me dit "boucle sans do"!

et si je retire un "loop" (ce qui n'est pas normal) il me dit " do sans boucle"!

je suis perdu..

voic-ci mon code, si quelqu'un peut m'aider..

Sub formule()

Dim tache As Integer

Dim cc As String

Dim MOP As String

Dim MOPa As Variant

Do

tache = ActiveCell.Offset(0, -2)

cc = ActiveCell.Offset(0, -6)

MOPa = ActiveCell.Address

Sheets("ITK").Select

Range("a1").Activate

Do Until tache = ActiveCell.Value

flag1:

ActiveCell.Offset(2, 0).Activate

If "0" = ActiveCell.Value Then

MsgBox ("Tâche non référencée"): Exit Sub

End If

ActiveCell.Offset(1, 0).Activate

If cc = ActiveCell.Value Then

MOP = ActiveCell.Offset(0, 1).Value

Sheets("masterwipTESTMACRO").Select

Range(MOPa).Select

ActiveCell.Value = MOP

ActiveCell.Offset(1, 0).Activate

Else

GoTo flag1

Loop

' il manque la deuxième verif au cas ou le cc ne correspond pas au couple tache/cc

End If

Loop While ActiveCell.Offset(0, -17).Value <> "0"

End Sub

Bonjour,

Je suis un grand novice dans le monde VBA. J'essaye grâce à ce super forum de créer quelques macros afin de faciliter ma vie (recherche scientifique) mais le manque de base dans la matière me rend la tâche très difficile...

Aujourd'hui j'ai besoin de réaliser une Macro assez simple (je pense). J'ai réussi un bout mais il me manque le plus important, le décalage à chaque boucle.

Pour faire simple je souhaite copier les cellules de B6 à la dernière valeur et coller sur AG6 puis copier AL3 (résultat d'une formule dépendant des données copier-coller précédemment sur AG6 depuis B6:B...) sur la colonne AN3.

Je souhaite ensuite répéter cette opération en décalant B6 d'une colonne et AN3 d'une colonne à chaque boucle (AG6 et AL3 ne changent pas) jusqu'à ce que la valeur de la colonne xxx6 du premier copier-coller soit vide. Tout cela se fait sur la même feuille du même classeur. (je ne peux pas vous envoyer le classeur car données confidentielles... )

Sub Macro3()

Dim numero As Integer

numero = Range("B6")

While numero <> 0

Range("B6").Select OD.Cells(1, OD.Cells(1, Columns.Count).End(xlToLeft).Column + 1)

Range(Selection, Selection.End(xlDown)).Select

Selection.Copy

Range("AG6").Select

ActiveSheet.Paste

Range("AL3").Select

Range(Selection, Selection.End(xlDown)).Select

Application.CutCopyMode = False

Selection.Copy

Range("AN3").Select

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Range("AG6").Select

Range(Selection, Selection.End(xlDown)).Select

Selection.ClearContents

Wend

End Sub

J'espère que ce message respecte la charte, je précise bien entendu que je n'ai pas trouvé depuis ce matin 9h30 de réponse... C'est pour cela que je me permet de poster cette demande. Au plaisir de vous lire !

Bonsoir,

J'ai besoin de concaténer deux colonnes pour que le reste de mon code puisse s'exécuter correctement.

Habituellement je passe pas une boucle for, mais en l'occurrence, j'ai 96 000 lignes et même après deux heures mon ordi ne parvient pas à terminer la tâche.

Je voulais savoir si vous avez une solution pour effectuer une concaténation de toutes les données présentes entre deux colonnes, de manière la plus rapide qui soit ?

Je ne pense pas qu'il soit nécessaire de proposer un exemple de document.

Il s'agirait simplement de transmettre un document dont deux colonnes sont remplies sur 100 000 lignes.

Je vais essayer de tester via la création d'une collection, mais je pose quand même la question au cas où ça ne donnerait rien de bon !

Bonne soirée !

Bonjour à tous,

Je suis bloqué par un problème sûrement évident (mais que je ne parviens pas à résoudre) :

Je teste des cellules situées dans 3 colonnes, dont 2 non contigües (I, J, L) pour vérifier que les caractères soient bien pris en compte comme des nombres et pas du texte.

Ma procédure actuelle le fait pour une colonne (col I), mais j'ai les mêmes contrôles à effectuer pour les colonnes J et L et j'en aurai sûrement d'autres par la suite.

Voici ce que j'ai tenté sans succès :

Sub LettresEnChiffres()
'Procédure corrigeant les éventuelles erreurs de saisie dans les chiffres
'qui seraient considérés comme du texte
'Corrige aussi les écarts entre les chiffres (ex 1 000 pour 1000)
Dim FD, Tb, sCol As Variant
Dim NumLigneArv, DerLigne, i, j As Long
Dim NumLigneDep As Integer
Const LDEB = "13"
Const COL1 = "I"
Const COL2 = "J"
Const COL3 = "L"

Set FD = Worksheets("Donnees_SINP")

'******Tentative de boucle sur les 3 colonnes******
sCol = Array(9, 10, 12)
For j = LBound(sCol) To UBound(sCol)
'************

DerLigne = FD.Range("C999999").End(xlUp).Row
Set plageFT = FD.Range(j & LDEB & ":" & j & DerLigne)
plageFT.Select
'Set plageFT = FD.Range(j & LDEB & ":" & j & DerLigne)
plageFT.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
    SearchOrder:=xlByColumns, MatchCase:=False, SearchFormat:=False, _
    ReplaceFormat:=False
plageFT.NumberFormat = "0"
Tb = FD.Range(COL1 & LDEB & ":" & COL1 & DerLigne)

For i = LBound(Tb, 1) To UBound(Tb, 1)
    If Tb(i, 1) > 0 Then
        Tb(i, 1) = CLng(Tb(i, 1))
    End If
    If Tb(i, 1) = 0 And Tb(i, 1) <> "" Then
        Tb(i, 1) = ""
    End If
Next
Range("I13").Resize(UBound(Tb, 1), 1) = Tb

Next j

End Sub

Merci d'avance pour l'aide et les explications que vous pourrez m'apporter

Dan

Bonjour,

J'ai un tableau Excel qui me permet de suivre des fichiers .pdf

En colonne A, j'ai les noms des fichiers sans l'extension.

Ma macro teste alors la présence de chaque fichier dans un dossier spécifique. Si le fichier est présent, elle met le lien hypertexte sur son nom en colonne A. Si il est absent, elle renseigne l'onglet "Manquants".

Aujourd'hui, j'ai ajouté deux colonnes avec des noms de fichiers. Je voudrais donc faire la même chose pour les colonnes "A", "F", "L". Soit, tester la présence du fichier, si ok remonter le lien hypertexte, sinon renseigner l'onglet Manquants.

J'ai essayé en ajoutant une boucle

La macro fonctionne très bien pour les liens.

Le seul soucis, c'est que le noms des fichiers non présents dans le dossier sont repris dans l'onglet manquants.

Elle me liste uniquement les fichiers manquants de la dernière colonne. Or j'aimerai avoir la liste des fichiers manquants de toutes les colonnes. Ci-dessous le Code que j'ai essayé de mettre en forme ( je suis débutant, je ne pratique pas souvent)

Je vous remercie par avance pour votre aide.

Public Sub PDF()
'
    Dim oSh As Worksheet
    Dim sRepertoire As String
    Dim iLigFin As Integer
    Dim iLig As Integer
    Dim sFichier As String
    Dim oShManquants As Worksheet 'fichiers manquants
    Dim iLigManquant As Integer
    Dim Col As Variant

    'indiquer ici le répertoire de stockage de tous les fichiers
    sRepertoire = "C:\Users\Ghile\OneDrive\Bureau\Dossier tests\"
    Set oSh = Worksheets(1)
    Set oShManquants = Worksheets("Manquants")
    'RAZ anomalies
        For Each Col In Array("A", "F", "L")
            iLigFin = oShManquants.Range(Col & Rows.Count).End(xlUp).Row
                If iLigFin >= 2 Then
                    oShManquants.Rows("2:" & iLigFin).Delete
                End If
            'MAJ liens hypertexte
            iLigFin = oSh.Range(Col & Rows.Count).End(xlUp).Row
            iLigManquant = 1
            For iLig = 6 To iLigFin
            'mettre ici l'extension du fichier (Excel ?)
                sFichier = sRepertoire & oSh.Range(Col & iLig).Value & ".pdf"
                'vérifie que le fichier existe
                    If Dir(sFichier) = "" Then
                        'manquant
                        iLigManquant = iLigManquant + 1
                        oShManquants.Range("A" & iLigManquant).Value = sFichier
                    Else
                        'OK
                        oSh.Hyperlinks.Add Anchor:=oSh.Range(Col & iLig), Address:=sFichier
                    End If
            Next iLig
    Next Col
        'informations anomalies
        If iLigManquant > 1 Then
            MsgBox "Nombre manquants : " & iLigManquant - 1
            oShManquants.Activate
        Else
            MsgBox "Tous les fichiers sont présents dans la base signés !", vbExclamation
        End If

Set oSh = Nothing
Set oShManquants = Nothing
'
End Sub

Bonjour,

Mes faibles compétences en vba ne me permettent pas de me débrouiller seul.

J'ai une feuille fiche horaires aller export et fiche horaires retour export avec des horaires,périodes et jours de fonctionnement renseignés.

J'aimerai créer une macro qui selon la valeur de 2 combobox ( périodes et jours) dans une feuille Aller.Permettrait dans cette même feuille et également dans la feuille retour, de copier les colonnes ayant les lignes 2 et 3 identiques aux combobox.

Pouvez vous m'aider svp?

merci d'avance

15fichierexemple.xlsm (59.63 Ko)

Bonjour!

J'aimerais comparer chaque ligne de la colonne 3 avec toute les lignes de la colonne 1.

Si la ligne de la colonne 3 correspond à une ligne de la colonne 1 alors inscrire dans la colonne 4 la valeur de la colonne 2!

J'ai écris ce code mais j'ai l'impression qu'il compare uniquement ligne par ligne!:

Sub compare()
With Worksheets("Feuil1")
For i = 1 To Worksheets("feuil1").Cells(1, 1).End(xlDown).Row 'derniere cellule renseignée de la colonne?

  For j = 1 To Worksheets("feuil1").Cells(1, 3).End(xlDown).Row

    If Worksheets("feuil1").Cells(i, 1) = Worksheets("feuil1").Cells(j, 1) Then

      Worksheets("feuil1").Cells(i, 4) = Worksheets("feuil1").Cells(j, 2)

    End If
  Next
Next
End With
End Sub

Merci d'avance pour votre aide!

Bonjour à tous,

Encore une fois je viens déranger votre tranquillité pour un sujet qui est sans doute récurrent mais je ne trouve pas une méthode adapté à mon besoin.

je souhaiterais créer une boucle sur mes colonnes de manière à leurs appliquer une même instruction.

par exemple ce code, il s’applique pour mes colonnes A,B et C.

Je souhaiterais que la même instruction s'applique aux colonnes D, E et F.

Comment pourrais-je modifier mon code pour obtenir ce résultat ?

Merci par avance pour votre aide

Sub commentaire()
    Dim nA1 As String
    Dim nB1 As String
    Dim nC0 As String
    Dim nC1 As String
    Dim nC2 As String
    Dim nC3 As String

        With Sheets("Sheet1")
            Range("C2:C26").Formula = "=IF(A2<B2,""Your total is smaller than the sum of components"",""OK"")"
        For i = 2 To 26 'plage à adapter
            nA1 = IsNumeric(Cells(i, "A"))
            nB1 = IsNumeric(Cells(i, "B"))
            nC0 = Cells(i, "A").Value = "0"
            nC1 = Cells(i, "A").Value = "-"
            nC2 = Cells(i, "A").Value = ":"
            nC3 = Cells(i, "A").Value = ""

            If nA1 Then
                If Cells(i, "A").Value <> 0 And Cells(i, "A").Value > Cells(i, "B").Value And Cells(i, "B").Value = 0 Then
                        Cells(i, "C").Value = "Your total should not be 0, because the calculated total is > 0!"

                    ElseIf Cells(i, "A").Value <> 0 And Cells(i, "A").Value <> Cells(i, "B").Value And Cells(i, "B").Value = "-" Then
                        Cells(i, "C").Value = "Your total cannot be not applicable ('-'), because the calculated total is > 0!"

                    ElseIf Cells(i, "A").Value <> 0 And Cells(i, "A").Value <> Cells(i, "B").Value And Cells(i, "B").Value = ":" Then
                        Cells(i, "C").Value = "Your total cannot be not applicable (':'), because the calculated total is > 0!"
                    End If

                    If Cells(i, "A").Value <> 0 And Cells(i, "A").Value < Cells(i, "B").Value And Cells(i, "B").Value = "" Then
                        Cells(i, "C").Value = "Your total cannot be empty, because the calculated total is > 0!"

                    ElseIf Cells(i, "A").Value <> 0 And Cells(i, "A").Value <> Cells(i, "B").Value And Cells(i, "B").Value = nB1 Then
                        Cells(i, "C").Value
                    End If
            Next i
        End With
End Sub

    Private Sub Worksheet_Change(ByVal Target As Range)
        If Not Intersect(Range("A2:B26"), Target) Is Nothing Then
           Call commentaire
        End If
    End Sub

Cordialement,

Abakisi.

Bonjour,

Je cherche une boucle pour supprimer certaines colonnes.

mon idée est de rechercher le nom de l’entête des colonnes, une fois trouver, sélectionner et supprimer cette colonne

Ma macro de base :

Cells.Find(What:="SupplierReference").Activate

ActiveCell.EntireColumn.Select

Selection.Delete

Maintenant que j'ai trouvé ma macro je voudrais en faire une boucle qui chercherait tout les noms de colonne que j'aurais pre-défini et qui les supprimerais

Ma problématique c'est que j'ai a traiter cette extraction pour plusieurs filiales de ma société, que les colonnes sont pas toujours au même endroit (c'est pourquoi que je part sur l'idée de chercher par rapport au nom de l’entête) que sur certain fichier j'ai des noms de colonnes que d'autres non pas.

J'attache a mon poste le fichier, les colonne a supprimer sont en jaune.

je suis sous Excel 2016.

Merci de votre aide

Eddie

Bonjour.

Je souhaitais concaténer les valeurs des cellules de 3 colonnes sans faire de boucle (cellule par cellule).

Sur le net, les résultats de ma recherche aboutissent quasiment systématiquement à une boucle qui traite les cellules des colonnes en question, une par une.

Et puis je suis tombé sur la méthode "evaluate".

J'ai réussi à faire ce que je voulais, mais je n'ai pas bien compris ce que j'ai écrit.

Quand à l'aide de MSDN, c'est sûrement parce que je suis un noob, mais je ne comprends pas souvent ce qu'ils expliquent sur les méthodes pour lesquelles j'ai besoin d'aide...

Voici donc la ligne que j'ai écrite pour concaténer 3 colonnes entières (je précise, ceci afin d'éviter des boucles de plusieurs milliers de lignes):

CSNEDES.Range("J2:J" & iLine).Value = Evaluate("=B2:B" & iLine & "&""-""&" & "C2:C" & iLine & "&""""&" & "D2:D" & iLine)

ILine est le nb total de lignes de la UsedRange

J'ai compris que j'utilisais la formule excel de concaténation mais pourquoi autant de guillemets, surtout celles vides qui, si on les supprime, pervertit le résultat.

N'y a t-il pas un autre moyen de faire autrement que de passer par une formule excel ?

Merci pour vos explications.

Bonne journée.

Bonjour tout le monde,

J'ai plusieurs cellule sur une même ligne d'une feuille excel et je souhaite les transférer dans Mes labels de mon userfom;

ce que j'ai :

Me.Label91.Caption = Cells(5, 2) 'N°
Me.Label92.Caption = Cells(5, 3) 'Etat
Me.Label93.Caption = Cells(5, 4) 'Equipement
Me.Label94.Caption = Cells(5, 5) 'Service

Me.Label95.Caption = Cells(5, 7) 'Debut

Me.Label96.Caption = Cells(5, 10)
Me.Label97.Caption = Cells(5, 11)
Me.Label98.Caption = Cells(5, 12)
Me.Label99.Caption = Cells(5, 13)
Me.Label100.Caption = Cells(5, 14)
Me.Label101.Caption = Cells(5, 15)
Me.Label102.Caption = Cells(5, 16)
Me.Label103.Caption = Cells(5, 17)
Me.Label104.Caption = Cells(5, 18)
Me.Label105.Caption = Cells(5, 19)
Me.Label106.Caption = Cells(5, 20)
Me.Label107.Caption = Cells(5, 21)
Me.Label108.Caption = Cells(5, 22)
Me.Label109.Caption = Cells(5, 23)
Me.Label110.Caption = Cells(5, 24)
Me.Label111.Caption = Cells(5, 25)
Me.Label112.Caption = Cells(5, 26)
Me.Label111.Caption = Cells(5, 25)
Me.Label112.Caption = Cells(5, 26)
Me.Label113.Caption = Cells(5, 27)
Me.Label114.Caption = Cells(5, 28)
Me.Label115.Caption = Cells(5, 29)
Me.Label116.Caption = Cells(5, 30)
Me.Label117.Caption = Cells(5, 31)
Me.Label118.Caption = Cells(5, 32)
Me.Label119.Caption = Cells(5, 33)
Me.Label120.Caption = Cells(5, 34)
Me.Label121.Caption = Cells(5, 35)
Me.Label122.Caption = Cells(5, 36)
Me.Label123.Caption = Cells(5, 37)
Me.Label124.Caption = Cells(5, 38)
Me.Label125.Caption = Cells(5, 39)

Me.Label126.Caption = Cells(6, 2) 'N°
Me.Label127.Caption = Cells(6, 3) 'Etat
Me.Label128.Caption = Cells(6, 4) 'Equipement
Me.Label129.Caption = Cells(6, 5) 'Service

Me.Label130.Caption = Cells(6, 7) 'Debut

Me.Label131.Caption = Cells(6, 10)
Me.Label132.Caption = Cells(6, 11)
Me.Label133.Caption = Cells(6, 12)
Me.Label134.Caption = Cells(6, 13)
Me.Label135.Caption = Cells(6, 14)
Me.Label136.Caption = Cells(6, 15)
Me.Label137.Caption = Cells(6, 16)
Me.Label138.Caption = Cells(6, 17)
Me.Label139.Caption = Cells(6, 18)
Me.Label140.Caption = Cells(6, 19)
Me.Label141.Caption = Cells(6, 20)
Me.Label142.Caption = Cells(6, 21)
Me.Label143.Caption = Cells(6, 22)
Me.Label144.Caption = Cells(6, 23)
Me.Label145.Caption = Cells(6, 24)
Me.Label146.Caption = Cells(6, 25)
Me.Label147.Caption = Cells(6, 26)
Me.Label148.Caption = Cells(6, 27)
Me.Label149.Caption = Cells(6, 28)
Me.Label150.Caption = Cells(6, 29)
Me.Label151.Caption = Cells(6, 30)
Me.Label152.Caption = Cells(6, 31)
Me.Label153.Caption = Cells(6, 32)
Me.Label154.Caption = Cells(6, 33)
Me.Label155.Caption = Cells(6, 34)
Me.Label156.Caption = Cells(6, 35)
Me.Label157.Caption = Cells(6, 36)
Me.Label158.Caption = Cells(6, 37)
Me.Label159.Caption = Cells(6, 38)
Me.Label160.Caption = Cells(6, 39)

Me.Label161.Caption = Cells(7, 2) 'N°
Me.Label162.Caption = Cells(7, 3) 'Etat
Me.Label163.Caption = Cells(7, 4) 'Equipement
Me.Label164.Caption = Cells(7, 5) 'Service

Me.Label165.Caption = Cells(7, 7) 'Debut

Me.Label166.Caption = Cells(7, 10)
Me.Label167.Caption = Cells(7, 11)
Me.Label168.Caption = Cells(7, 12)
Me.Label169.Caption = Cells(7, 13)
Me.Label170.Caption = Cells(7, 14)
Me.Label171.Caption = Cells(7, 15)
Me.Label172.Caption = Cells(7, 16)
Me.Label173.Caption = Cells(7, 17)
Me.Label174.Caption = Cells(7, 18)
Me.Label175.Caption = Cells(7, 19)
Me.Label176.Caption = Cells(7, 20)
Me.Label177.Caption = Cells(7, 21)
Me.Label178.Caption = Cells(7, 22)
Me.Label179.Caption = Cells(7, 23)
Me.Label180.Caption = Cells(7, 24)
Me.Label181.Caption = Cells(7, 25)
Me.Label182.Caption = Cells(7, 26)
Me.Label183.Caption = Cells(7, 27)
Me.Label184.Caption = Cells(7, 28)
Me.Label185.Caption = Cells(7, 29)
Me.Label186.Caption = Cells(7, 30)
Me.Label187.Caption = Cells(7, 31)
Me.Label188.Caption = Cells(7, 32)
Me.Label189.Caption = Cells(7, 33)
Me.Label190.Caption = Cells(7, 34)
Me.Label191.Caption = Cells(7, 35)
Me.Label192.Caption = Cells(7, 36)
Me.Label193.Caption = Cells(7, 37)
Me.Label194.Caption = Cells(7, 38)
Me.Label195.Caption = Cells(7, 39)

Me.Label196.Caption = Cells(8, 2) 'N°
Me.Label197.Caption = Cells(8, 3) 'Etat
Me.Label198.Caption = Cells(8, 4) 'Equipement
Me.Label199.Caption = Cells(8, 5) 'Service

Me.Label200.Caption = Cells(8, 7) 'Debut

Me.Label201.Caption = Cells(8, 10)
Me.Label202.Caption = Cells(8, 11)
Me.Label203.Caption = Cells(8, 12)
Me.Label204.Caption = Cells(8, 13)
Me.Label205.Caption = Cells(8, 14)
Me.Label206.Caption = Cells(8, 15)
Me.Label207.Caption = Cells(8, 16)
Me.Label208.Caption = Cells(8, 17)
Me.Label209.Caption = Cells(8, 18)
Me.Label210.Caption = Cells(8, 19)
Me.Label211.Caption = Cells(8, 20)
Me.Label212.Caption = Cells(8, 21)
Me.Label213.Caption = Cells(8, 22)
Me.Label214.Caption = Cells(8, 23)
Me.Label215.Caption = Cells(8, 24)
Me.Label216.Caption = Cells(8, 25)
Me.Label217.Caption = Cells(8, 26)
Me.Label218.Caption = Cells(8, 27)
Me.Label219.Caption = Cells(8, 28)
Me.Label220.Caption = Cells(8, 29)
Me.Label221.Caption = Cells(8, 30)
Me.Label222.Caption = Cells(8, 31)
Me.Label223.Caption = Cells(8, 32)
Me.Label224.Caption = Cells(8, 33)
Me.Label225.Caption = Cells(8, 34)
Me.Label226.Caption = Cells(8, 35)
Me.Label227.Caption = Cells(8, 36)
Me.Label228.Caption = Cells(8, 37)
Me.Label229.Caption = Cells(8, 38)
Me.Label230.Caption = Cells(8, 39)

Me.Label231.Caption = Cells(9, 2) 'N°
Me.Label232.Caption = Cells(9, 3) 'Etat
Me.Label233.Caption = Cells(9, 4) 'Equipement
Me.Label234.Caption = Cells(9, 5) 'Service

Me.Label235.Caption = Cells(9, 7) 'Debut

Me.Label236.Caption = Cells(9, 10)
Me.Label237.Caption = Cells(9, 11)
Me.Label238.Caption = Cells(9, 12)
Me.Label239.Caption = Cells(9, 13)
Me.Label240.Caption = Cells(9, 14)
Me.Label241.Caption = Cells(9, 15)
Me.Label242.Caption = Cells(9, 16)
Me.Label243.Caption = Cells(9, 17)
Me.Label244.Caption = Cells(9, 18)
Me.Label245.Caption = Cells(9, 19)
Me.Label246.Caption = Cells(9, 20)
Me.Label247.Caption = Cells(9, 21)
Me.Label248.Caption = Cells(9, 22)
Me.Label249.Caption = Cells(9, 23)
Me.Label250.Caption = Cells(9, 24)
Me.Label251.Caption = Cells(9, 25)
Me.Label252.Caption = Cells(9, 26)
Me.Label253.Caption = Cells(9, 27)
Me.Label254.Caption = Cells(9, 28)
Me.Label255.Caption = Cells(9, 29)
Me.Label256.Caption = Cells(9, 30)
Me.Label257.Caption = Cells(9, 31)
Me.Label258.Caption = Cells(9, 32)
Me.Label259.Caption = Cells(9, 33)
Me.Label260.Caption = Cells(9, 34)
Me.Label261.Caption = Cells(9, 35)
Me.Label262.Caption = Cells(9, 36)
Me.Label263.Caption = Cells(9, 37)
Me.Label264.Caption = Cells(9, 38)
Me.Label265.Caption = Cells(9, 39)

et ainsi de suite pour le reste.... ops:

Quelqu'un peut m'aider S'il vous plait que je puisse trouver une macro en boucle pour cette proposition.

J'ai trouvé plusieurs tuto concernant seulement 1 colonne et plusieurs lignes mais pas dans mon cas.

Merci d'avance

BOnjour,

Je suis un nouveau venu dans le groupe et j'aimerais avoir votre aide pour ecrire les codes macro des taches suivantes en utilisant Boucle:

copier les cellules (G4:G52) de chaque fichier se trouvant dans le dossier ''A compiler"

les coller dans une seulle feuille "Sheet1" a partir de la colonne D cad ( pour le 1er fichier coller a la colonne (D4:D52) , pour le 2e fichier coller a la colonne (E3:E52), ainsi de suite....

Merci de votre aide

Walit

18a-compiler.zip (92.15 Ko)

Bonjour

Je recherche à créer une boucle sur deux colonnes.

Colonne B une série de chiffres liés à un document sur internet sur un site (ex. google)

Colonne C une autre série de chiffres pour un autre site (ex. Ask).

Normalement les boucles fonctionnent ligne par ligne.

J’ai créé deux boucles pour me faire ce traitement, mais j’avoue que ne trouve pas cela très jolie.

Y aurais t’il aune méthode plus simple pour ce traitement ?

Voici ma boucle actuelle.

Sub Boucle()
 Derligne_cible = Range("B2000").End(xlUp).Row 'trouve la dernière ligne de la colonne B
 Range("B2").Select 'cellule de démarrage
 'Traitement des N° et des liens (colonne B)
     For l = 1 To Derligne_cible 'l => n° ligne ver la fin
     If ActiveCell <> "" Then
         Destination = ActiveCell.Address(0, 0) ' cellule de destination
     Valeur = ActiveCell
 '    ActiveCell.ClearContents
         With ActiveSheet 'sur cette feuille
             .Range(Destination) = Valeur
             .Hyperlinks.Add .Range(Destination), "http://www.google=" & Valeur 'ajoute le lien + la valeur de la cellule
         End With
     ActiveCell.Offset(1, 0).Activate 'ligne suivante
     Else
     ActiveCell.Offset(1, 0).Activate 'ligne suivante
     End If
     Next 'Boucle suivante
 Range("C2").Select 'cellule de démarrage
 'Traitement des N° et des liens (colonne C)
     For l = 1 To Derligne_cible 'l => n° ligne ver la fin
     If ActiveCell <> "" Then
         Destination = ActiveCell.Address(0, 0) ' cellule de destination
     Valeur = ActiveCell
         With ActiveSheet 'sur cette feuille
             .Range(Destination) = Valeur
             .Hyperlinks.Add .Range(Destination), "http://www.ask=" & Valeur 'ajoute le lien + la valeur de la cellule
         End With
     ActiveCell.Offset(1, 0).Activate 'ligne suivante
     Else
     ActiveCell.Offset(1, 0).Activate 'ligne suivante
     End If
     Next 'Boucle suivante
     Range("B21").Select 'retour a la cellule de démarrage
 End Sub

Merci d'avance pour votre aide.

23exemple.xlsm (17.11 Ko)

Bonjour,

Je démarre en autodidacte sur VBA, notamment grâce aux cours que ce site propose

Malgré des recherches et notamment sur ce forum, je bloque sur mon problème :

Je dispose de 3 tableaux dans Excel : le tableau 1, avec mes données de base, le tableau 2 que je veux remplir et le tableau 3 (sur une autre feuille) qui contient des pourcentages. Je n'arrive pas à remplir le tableau 2 avec le tableau 1 + le pourcentage du tableau 3.

En PJ j'ai reconstitué le document sur lequel je travaille :

33test-macro.xlsx (11.71 Ko)

La solution que j'envisage est :

Sub Macro1()

For i = 3 To 6
Range("F" & i) = Range("A" & i) * (1 + Sheets("Feuil2").Range("C" & i + 7))

End Sub

Càd faire une boucle sur les lignes de la 1ère colonne, que je répèterais sur chaque colonne. Ou bien une fois les calculs faits sur la 1ère colonne, je copie-colle pour avoir les formules dans les colonnes suivantes.

Mon problème est : je ne parviens pas à faire une boucle pour répéter une action sur les mêmes lignes dans plusieurs colonnes.

Mais je me doute qu'il existe une solution plus simple.

Merci beaucoup pour votre aide.

Bonjour,

Je souhaite imposer les largeurs de colonnes d'un tableau en utilisant une boucle do while car le nombre de colonnes peut varier en fonction de l'utilisation. Pour cela je recherche la synthaxe pour incrémenter ma boucle avec des lettres ...

il faudrait donc remplacer le programme ci-dessous :

Columns("A:A").ColumnWidth = 60 'colonne Event circonstances

Columns("B:B").ColumnWidth = 10 'colonne operateur

Columns("C:C").ColumnWidth = 15 'colonne operateur

.....

par

num_col =A

do while cells(1,num_col)<>"" 'tant qu'il existe des colonnes renseignées sur le tableau

Columns("num_col:num_col").ColumnWidth = tab_col(num_col) 'colonne Event circonstance

loop

est il possible d'avoir une aide??

Merci pour votre retour.

Cordialement,

Fred

Recherches récentes

gestion compte vbasuivi livraison indicateurarchiver feuillecreation suivi retardsliste appelplanningcartographie risquesvitesse moyennearchiver ongletarchiver ongletsarchivage ongletsclassement donneerecherche classement fonction nomplanning rotationsnumeros lignes inversestableau calcul gazregrouper colonnesdecaler petit raison nbvalinfobulledrag drop